一个在线的Jupyter笔记本演示了代码并显示颜色差异,网址为:https://anaconda.org/walter/pandas_seaborn_color/notebook
使用Pandas dataframe方法制作条形图时,颜色会出现错误。Seaborn可以改善matplotlib的颜色调色板。所有来自matplotlib的绘图都会自动使用新的Seaborn调色板。然而,来自Pandas数据框的条形图会恢复到非Seaborn颜色。这种行为不一致,因为来自Pandas数据框的线图确实使用Seaborn颜色。即使我在所有绘图中都使用Pandas,这也会使我的绘图看起来具有不同的风格。
如何在使用Pandas方法进行绘图时获得一致的Seaborn颜色调色板?
我正在使用Python 2.7.11,在一个只包含此代码所需的必要软件包(pandas、matplotlib和seaborn)的conda环境中运行此代码。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame({'y':[5,7,3,8]})
# matplotlib figure correctly uses Seaborn color palette
plt.figure()
plt.bar(df.index, df['y'])
plt.show()
# pandas bar plot reverts to default matplotlib color palette
df.plot(kind='bar')
plt.show()
# pandas line plots correctly use seaborn color palette
df.plot()
plt.show()
pyplot.scatter
也不使用seaborn颜色(默认情况下?)。