gpt4 book ai didi

python - 多次调用 pd.DataFrame.plot() 后颜色一致

转载 作者:行者123 更新时间:2023-12-01 02:06:38 25 4
gpt4 key购买 nike

我有一个数据框v,其中包含一些数字数据。

v=pd.DataFrame(data=np.random.rand(300,3))

我想在同一个matplotlib图上绘图:

  • 散点图
  • 相同点的移动平均值

我使用pd.DataFrame.plot()来做到这一点

plt.figure()
v.plot(style='o',legend=False,ax=plt.gca(),alpha=0.2,ls='')
v.rolling(7).mean().plot(legend=False,ax=plt.gca())

这很好用。

但是,第一个图绘制的点根据其行号进行着色。第二个图中的线条也会发生同样的情况。

我希望两个绘图命令之间的两种颜色保持一致,所以通过移动平均线获得的线具有与散点中相同的颜色。如何得到它?

这是我运行代码得到的结果。显然,我无法弄清楚红线是否对应于绿色橙色或蓝色点......

enter image description here

最佳答案

原版

我相信你需要 -

%matplotlib inline # only for jupyter notebooks
import pandas as pd
from matplotlib import pyplot as plt
import numpy as np

colors = {0: 'red', 1:'green', 2:'blue'}
v=pd.DataFrame(data=np.random.rand(300,3))
plt.figure()
v.plot(marker='o',legend=False,ax=plt.gca(),ls='', alpha=0.2, color=colors.values())
v.rolling(7).mean().plot(legend=False,ax=plt.gca(), color=colors.values())

更新

就跟着 -

选项 1(无额外的 cm 依赖项)

colors_rand = np.random.rand(len(v.columns),3)
v.plot(marker='o',legend=False,ax=plt.gca(),ls='', alpha=0.5, color=colors_rand )
v.rolling(7).mean().plot(legend=False,ax=plt.gca(), color=colors_rand )

选项2(按照OP的建议)

v.plot(marker='o',legend=False,ax=plt.gca(),ls='', alpha=0.5, colors=cm.rainbow(np.linspace(0,1,v.shape[1]) ))
v.rolling(7).mean().plot(legend=False,ax=plt.gca(), colors=cm.rainbow(np.linspace(0,1,v.shape[1]) ))

关于python - 多次调用 pd.DataFrame.plot() 后颜色一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48988697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com