GoC*_*rry 4 python matplotlib dataframe pandas
假设我有以下两个数据帧:
df1 = pd.DataFrame(np.random.randn(100, 3),columns=['A','B','C']).cumsum()
df2 = pd.DataFrame(np.random.randn(100, 3),columns=['A','B','C']).cumsum()
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何在一个图中绘制它们,以便:
目前我最接近的是以下内容:
ax = df1.plot(style=['b','y','g'])
df2.plot(ax=ax, style=['b','y','g'], linestyle='--')
Run Code Online (Sandbox Code Playgroud)
有没有办法获取DataFrame.plot()默认使用的颜色代码?或者还有其他更好的方法来实现我想要的吗?理想情况下,我不想style
使用参数指定任何颜色代码,但始终使用默认颜色.
您可以使用get_color
以下行:
df1 = pd.DataFrame(np.random.randn(100, 3),columns=['A','B','C']).cumsum()
df2 = pd.DataFrame(np.random.randn(100, 3),columns=['A','B','C']).cumsum()
ax = df1.plot()
l = ax.get_lines()
df2.plot(ax=ax, linestyle='--', color=(i.get_color() for i in l))
Run Code Online (Sandbox Code Playgroud)
输出:
在不弄乱颜色本身或将它们从一个绘图转移到另一个绘图的情况下,您可以轻松地重置绘图命令之间的颜色循环
ax = df1.plot()
ax.set_prop_cycle(None)
df2.plot(ax=ax, linestyle="--")
Run Code Online (Sandbox Code Playgroud)
您可以从matplotlib获取当前正在使用的默认颜色参数.
import matplotlib.pyplot as plt
colors = list(plt.rcParams.get('axes.prop_cycle'))
[{'color': '#1f77b4'},
{'color': '#ff7f0e'},
{'color': '#2ca02c'},
{'color': '#d62728'},
{'color': '#9467bd'},
{'color': '#8c564b'},
{'color': '#e377c2'},
{'color': '#7f7f7f'},
{'color': '#bcbd22'},
{'color': '#17becf'}]
Run Code Online (Sandbox Code Playgroud)
所以只是通过style=['#1f77b4', '#ff7f0e', '#2ca02c']
,颜色应该工作.
如果你想设置另一个颜色循环器,比如旧版本,那么:
plt.rcParams['axes.prop_cycle'] = ("cycler('color', 'bgrcmyk')")
list(plt.rcParams['axes.prop_cycle'])
#[{'color': 'b'},
# {'color': 'g'},
# {'color': 'r'},
# {'color': 'c'},
# {'color': 'm'},
# {'color': 'y'},
# {'color': 'k'}]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1418 次 |
最近记录: |