无法在matplotlib中更改线条的颜色

问题描述 投票:1回答:2

code

import matplotlib
matplotlib.rc("lines", marker="x", linewidth=5, color="r")
import pylab
pylab.plot([1,2,3])
pylab.show()

描述

  • 我需要红线,但不是

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9YMGxsMi5wbmcifQ==” alt =“在此处输入图像描述”>

  • 我改变了线的宽度,可以使用。
  • 环境是Windows,思想是pharmharm。
  • python3.5。我用的是Anaconda3。

python-3.x matplotlib
2个回答
2
投票

这并不是应该真正使用matplotlib.rc的方式。它是全局配置。我也不认为单独使用color是有效的参数。

仅用于单个图,执行此操作:

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6], linestyle='-', color='r', linewidth=2)
fig.savefig('plot_with_red_line.png', dpi=100)

此外,请勿使用pylab界面。使用pyplot。


0
投票

默认情况下,颜色由Cycler对象指定。在pyplot.plot()(或axes.Axes.plot())命令中手动指定颜色(请参见Paul's answer)将更改颜色对于单张图。如果要更改默认颜色对于所有折线图,请继续阅读。

以下示例源自the matplotlib documentation,它说明了问题:

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

plt.ion()  # Interactive mode on.
data = np.random.randn(50)

# Want to change default line color to cyan.
mpl.rc('lines', linewidth=4, color='c')

# Plot; linewidth changes, color doesn't.
plt.plot(data)

Color is still <code>'tab:blue'</code>, not cyan.

嗯。颜色没有变为青色。现在,我在示例matplotlibrc文件的bottom of the page处注意到以下行:

#lines.color : C0 ## has no affect on plot(); see axes.prop_cycle

事实是,为了在默认的matplotlib图中循环显示颜色,将循环器分配给axes.Axes对象。我们需要provide a different cycler具有我们想要的color属性。继续上一个示例...

plt.close()

from cycler import cycler

custom_cycler = (cycler(color=['c', 'm', 'y', 'k']) + cycler(linewidth=[1, 2, 3, 4]))
mpl.rc('axes', prop_cycle=custom_cycler)

for i in range(5):
    plt.plot(data + i)

Cycler has changed axes properties.

哇!我们根据需要更改了默认颜色循环,并在此过程中了解了Cyclers,它也可以循环显示其他属性,例如linewidth


NOTE:也可以通过axes.Axes更改axes.Axes.set_prop_cycle()实例的属性循环程序。

注2: axes.Axes.set_prop_cycle(),请不要使用pylab;使用pyplot。 As Paul said

© www.soinside.com 2019 - 2024. All rights reserved.