Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python matplotlib子批次-颜色是可选的_Python_Pandas_Matplotlib_Seaborn - Fatal编程技术网

Python matplotlib子批次-颜色是可选的

Python matplotlib子批次-颜色是可选的,python,pandas,matplotlib,seaborn,Python,Pandas,Matplotlib,Seaborn,我这里有一个代码,可以打印不同的子图。但是,第二个子批次的颜色总是交替的。如何修复此问题,使所有颜色一致 我猜您的hrdata2016恰好第一行为“非活动”,而您的hrdata2015和hrdata2017都有第一行为“活动”。由于没有定义色调(颜色)顺序,因此使用了数据帧中的顺序。通过如下参数定义色调(颜色)顺序: import matplotlib.pyplot as plt import pandas as pd import seaborn as sns df1 = pd.DataF

我这里有一个代码,可以打印不同的子图。但是,第二个子批次的颜色总是交替的。如何修复此问题,使所有颜色一致


我猜您的
hrdata2016
恰好第一行为“非活动”,而您的
hrdata2015
hrdata2017
都有第一行为“活动”。由于没有定义色调(颜色)顺序,因此使用了数据帧中的顺序。通过如下参数定义色调(颜色)顺序:

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

df1 = pd.DataFrame([['F', 'Active'],
                    ['M', 'Inactive'],
                    ['F', 'Inactive'],
                    ['M', 'Active'],
                    ['F', 'Inactive'],
                    ['M', 'Inactive'],
                    ['F', 'Active']], columns=['Sex', 'HR Status'])
df2 = df1.drop(0)
df3 = df2.drop(1)
hrlist = [df1, df2, df3]

h = 'Sex'
for i in range(len(hrlist)):
    plt.subplot(2,2,i+1)
#     ax1 = sns.countplot(data=hrlist[i], x=h, hue="HR Status", order=hrlist[i][h].value_counts().index)
    ax1 = sns.countplot(data=hrlist[i], x=h, hue="HR Status",
                        order=hrlist[i][h].value_counts().index,
                        hue_order=hrlist[i]["HR Status"].value_counts().index)
plt.show()

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns

df1 = pd.DataFrame([['F', 'Active'],
                    ['M', 'Inactive'],
                    ['F', 'Inactive'],
                    ['M', 'Active'],
                    ['F', 'Inactive'],
                    ['M', 'Inactive'],
                    ['F', 'Active']], columns=['Sex', 'HR Status'])
df2 = df1.drop(0)
df3 = df2.drop(1)
hrlist = [df1, df2, df3]

h = 'Sex'
for i in range(len(hrlist)):
    plt.subplot(2,2,i+1)
#     ax1 = sns.countplot(data=hrlist[i], x=h, hue="HR Status", order=hrlist[i][h].value_counts().index)
    ax1 = sns.countplot(data=hrlist[i], x=h, hue="HR Status",
                        order=hrlist[i][h].value_counts().index,
                        hue_order=hrlist[i]["HR Status"].value_counts().index)
plt.show()