matplotlib设置颜色,时尚风格

时间:2013-09-13 12:07:37

标签: python matplotlib

我可以通过以下方式在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' + '_'
    
  3. 所以我希望得到类型的命令:

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

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

3 个答案:

答案 0 :(得分:6)

docs中有所有可能的选项。

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

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

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

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('--')

答案 1 :(得分: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

所以只需添加参数即可接受所需的颜色和线条样式

答案 2 :(得分:2)

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

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

请参阅Python文档中的Unpacking Argument Lists