如何在指定了标记和错误栏的情况下自定义多色图上的颜色

时间:2019-01-06 21:27:42

标签: python pandas matplotlib colors markers

我在这里遵循了有关如何使用自定义标记和错误栏绘制数据框的提示。但是,我不知道如何更改绘图中每条线的颜色。

我尝试使用传递的“样式”和“颜色”,但不允许我同时指定两者。

tumor = pd.DataFrame({
'Time': [0, 5, 10, 15, 20, 25],
'Capomulin': [45.0, 44.26608641544399, 43.08429058188399, 42.06431734681251, 40.71632532212173, 39.93952782686818],
'Infubinol': [45.0, 47.062001033088, 49.40390857087143, 51.29639655633334, 53.19769093422999, 55.71525236228889],
'Ketapril': [45.0, 47.38917452114348, 49.582268974622714, 52.39997374321578, 54.92093473734737, 57.678981717731574],
'Placebo': [45.0, 47.125589188437495, 49.42332947868749, 51.35974169802999, 54.36441702681052, 57.48257374394706]})
df.set_index('Time', inplace=True)

tsem = pd.DataFrame({
'Time': [0, 5, 10, 15, 20, 25],
'Capomulin': [0.0, 0.44859285020103756, 0.7026843745238932, 0.8386172472985688, 0.9097306924832056, 0.8816421535181787],
'Infubinol': [0.0, 0.23510230430767506, 0.2823459146215716, 0.35770500497539054, 0.4762095134790833, 0.5503145721542003],
'Ketapril': [0.0, 0.26481852016728674, 0.35742125637213723, 0.5802679659678779, 0.7264838239834724, 0.7554127528910378],
'Placebo': [0.0, 0.21809078325219497, 0.40206380730509245, 0.6144614435805993, 0.8396091719248746, 1.0348719877946384]})
errors.set_index('Time', inplace=True)

ax = tumor.plot(linewidth = .5, yerr = tsem, legend = False)
ax.set_prop_cycle(None)
tumor.plot(linewidth = .5, 
style =["o-", "^-", "s-", "d-"], 
color = ["r", "b", "g", "k"], ax = ax)

plt.grid()
plt.xlabel("Time (Days)")
plt.ylabel("Tumor Volume (mm3)")

plt.show()

我希望获得具有指定颜色,标记和错误栏的多线图。

但是,出现此错误:

ValueError:无法传递带有颜色符号和'color'关键字参数的'style'字符串。请使用其中一种,或通过不带颜色符号的“样式”

结果图形仅显示误差线和错误线,而没有标记。

My result

What I'm trying to achieve

1 个答案:

答案 0 :(得分:1)

尝试

style =["ro-", "b^-", "gs-", "kd-"]

使用 样式颜色的原因是,样式字符串也可以包含颜色信息。

请注意,您应将df的{​​{1}}替换为tumor的{​​{1}},以便随时间创建图。