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

Mis*_*cht 7 python matplotlib pandas 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()
Run Code Online (Sandbox Code Playgroud)

我知道我应该以某种方式告诉colormap它正在被输入的值的范围,但我无法弄清楚如何使用pandas .p​​lot()函数,因为这个plot()不接受vmin例如/ vmax参数.

Ser*_*ity 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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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