从Seaborn的两个不同数据框中读取时自定义条形图的颜色

时间:2018-06-21 02:13:42

标签: pandas dataframe matplotlib bar-chart seaborn

我已使用以下代码绘制了条形图:

dffinal['CI-noCI']='Cognitive Impairement'
nocidffinal['CI-noCI']='Non Cognitive Impairement'
res=pd.concat([dffinal,nocidffinal])

sns.barplot(x='6month',y='final-formula',data=res,hue='CI-noCI')
plt.xticks(fontsize=8, rotation=45)
plt.show()

结果如下:

enter image description here

我想将它们的颜色更改为红色和绿色。 我能怎么做? 就像信息一样,该图正在读取两个不同的数据帧。

我所经历的链接与该数据帧只是一个数据帧的情况有关,因此不适用于我的情况。

谢谢:)

1 个答案:

答案 0 :(得分:0)

您可以使用matplotlib覆盖Seaborn的默认颜色循环,以确保其使用的色调是红色和绿色。

import matplotlib.pyplot as plt

plt.rcParams['axes.prop_cycle'] = ("cycler('color', 'rg')")

示例:

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({'date': [1,2,3,4,4,5], 
                   'value': [10,15,35,14,18,4],
                   'hue_v': [1,1,2,1,2,2]})

# The normal seaborn coloring is blue and orange
sns.barplot(x='date', y='value', data=df, hue='hue_v')

enter image description here

# Now change the color cycling and re-make the same plot:
plt.rcParams['axes.prop_cycle'] = ("cycler('color', 'rg')")
sns.barplot(x='date', y='value', data=df, hue='hue_v')

enter image description here

现在这将影响您创建的所有其他图形,因此,如果要恢复所有其他图的默认设置,则需要执行以下操作:

sns.reset_orig()