使用matplotlib色彩映射与pandas dataframe.plot函数

时间:2017-01-07 11:38:14

标签: python pandas matplotlib colormap

我试图将matplotlib.colormap对象与pandas.plot函数结合使用:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as cm

df = pd.DataFrame({'days':[172, 200, 400, 600]})
cmap = cm.get_cmap('RdYlGn')
df['days'].plot(kind='barh', colormap=cmap)
plt.show()

我知道我应该以某种方式告诉色彩图它所喂食的价值范围,但是在使用大熊猫时,我无法弄清楚如何做到这一点.plot()函数如此plot()不接受vmin / vmax参数。

1 个答案:

答案 0 :(得分:6)

Pandas为每一行应用色彩映射,这意味着您可以为单列数据帧获得相同的颜色。

要为数据框的每一行应用不同的颜色,您必须从所选的色彩映射生成颜色列表:

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np

df = pd.DataFrame({'days':[172, 200, 400, 600]})
colors = cm.RdYlGn(np.linspace(0,1,len(df)))
df['days'].plot(kind='barh', color=colors)
plt.show()

enter image description here

另一种方法是直接使用matplotlib。