2

我可以通过以下方式在 matplotlib 中设置绘图的颜色和样式:

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot([1,2,3],[1,2,3], 'r-')
plt.show()

这有效,但是:

  1. 我只能使用由一个字符指定的颜色,例如“r”、“k”等。最好能够使用 matplotlib 接受的 HTML 颜色名称。

  2. 我可能必须提前准备将要传递的字符串,做类似的事情

    fmt = 'r' + '_'
    

所以我想要以下类型的命令:

obj.set_color('Aquamarine')
obj.set_style('-')

我找不到办法做到这一点。

4

3 回答 3

6

您在docs中拥有所有可能的选项。

因此,您可以为绘图功能提供所有选项:

plt.plot([1,2,3], [5,6,7], color='#FF4455', linestyle='--')

或者你可以只绘图,绘图函数将返回Artist它创建的 s 列表(在这种情况下只有一行)。之后,您可以在该特定行上设置属性。

fig, ax = plt.subplots(1, 1)
lines = ax.plot([1,2,3], [5,6,7])
line = lines[0]
line.set_color('#994455')
line.set_linestyle('--')
于 2013-09-13T12:21:32.247 回答
3

您可以单独设置颜色和线条样式:

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot([1,2,3],[1,2,3], color="r", ls="-")
plt.show()

从情节的文档:

此外,您可以通过许多奇怪而奇妙的方式指定颜色,包括全名 ( 'green')、十六进制字符串 ( '#008000')、RGB 或 RGBA 元组 ( (0,1,0,1)) 或灰度强度作为字符串 ( '0.8')。其中,字符串规范可以用来代替fmt组,但元组形式只能用作kwargs.

所以只需添加参数来接受你想要的颜色和线条样式

于 2013-09-13T12:19:40.533 回答
3

您可以使用字典来存储调用中使用的关键字参数plt.plot

fmt = { 'color': 'red', 'linestyle' : '--'}
x = np.arange(10)
y = np.sin(x)
plt.plot(x,y,**fmt)

请参阅:在 Python 文档中解包参数列表。

于 2013-09-13T12:44:57.100 回答