【问题标题】:Matplotlib >1 Line Style, Same Line, Different Colors per LineMatplotlib >1 线型,同一行,每行不同颜色
【发布时间】:2016-12-29 05:39:17
【问题描述】:

给定以下数据框和折线图:

import matplotlib.pyplot as plt
from cycler import cycler
import numpy as np
fig, ax=plt.subplots(1)
d=pd.DataFrame({'a':[1,2,3,4],
                'b':[2,3,4,5],
                'c':[3,4,5,6]})
colors=['r','g','b']
ax.set_prop_cycle(cycler('color', [colors]))
ax.plot(d[:3],'-ko',d[2:],'--ko')
plt.show()

您会注意到我试图为每行指定一种颜色,但它不起作用。我还尝试在 ax.plot 中使用颜色参数。 看起来这应该是直截了当的。

提前感谢您对此提供的任何帮助。

【问题讨论】:

  • 'k' 中的 '-ko''--ko' 将颜色设置为黑色...也许尝试删除它?
  • 这是有道理的,但如果我这样做,我会得到 ValueError: to_rgba: Invalid rgba arg "['r', 'g', 'b']" could not convert string to float: 'r '

标签: python-3.x matplotlib colors linegraph


【解决方案1】:

您的代码中有两个问题。

  1. '-ko''--ko' 中的 'k' 将颜色设置为黑色,因此我们需要将其删除

  2. colors 已经是一个列表,但您在调用 set_prop_cycle 时再次将其放在方括号内,因此将其放入嵌套列表:[['r','g','b']]。删除那里的方括号,一切正常:ax.set_prop_cycle(cycler('color', colors))

因此,您的代码将如下所示:

import matplotlib.pyplot as plt
import pandas as pd
from cycler import cycler
import numpy as np
fig, ax=plt.subplots(1)
d=pd.DataFrame({'a':[1,2,3,4],
                'b':[2,3,4,5],
                'c':[3,4,5,6]})
colors=['r','g','b']
ax.set_prop_cycle(cycler('color', colors))
ax.plot(d[:3],'-o',d[2:],'--o')
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多