Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.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 在不同的饼图中为每个标签保留相同的颜色_Python_Pandas_Matplotlib - Fatal编程技术网

Python 在不同的饼图中为每个标签保留相同的颜色

Python 在不同的饼图中为每个标签保留相同的颜色,python,pandas,matplotlib,Python,Pandas,Matplotlib,从一个饼图到另一个饼图,我很难保持每个标签的颜色相同。如下图所示,Matplotlib反转了第二个饼图中的颜色。我希望“青蛙”标签保持红色,“猪”标签保持绿色。 我还尝试添加label参数,但它只是给出了错误的计数。我还尝试使用colors=colors[::-1]反转第二张图表中的颜色,它可以工作,但无法持续,因为有时我有两个以上的标签 代码如下: sizes1=[“青蛙”、“猪”、“青蛙”、“青蛙”] 大小2=[‘猪’、‘猪’、‘猪’、‘青蛙’、‘青蛙’] 颜色=['红色','绿色'] d

从一个饼图到另一个饼图,我很难保持每个标签的颜色相同。如下图所示,Matplotlib反转了第二个饼图中的颜色。我希望“青蛙”标签保持红色,“猪”标签保持绿色。 我还尝试添加
label
参数,但它只是给出了错误的计数。我还尝试使用
colors=colors[::-1]
反转第二张图表中的颜色,它可以工作,但无法持续,因为有时我有两个以上的标签

代码如下:

sizes1=[“青蛙”、“猪”、“青蛙”、“青蛙”]
大小2=[‘猪’、‘猪’、‘猪’、‘青蛙’、‘青蛙’]
颜色=['红色','绿色']
df1=pd.DataFrame(data=sizes1,columns=['a'])
df2=pd.DataFrame(数据=sizes2,列=['a'])
图,ax=plt.子批次(1,2,figsize=(18,5))
df1['a'].value_counts().plot.pie(分解=[0,0.1],自动CT=“%1.1f%%',ax=ax[0],阴影=真,颜色=颜色)
df2['a'].value_counts().plot.pie(分解=[0,0.1],自动扫描=“%1.1f%%',ax=ax[1],阴影=真,颜色=颜色)

您可以定义颜色字典,然后在打印时使用此映射指定
颜色。这将使所有子批次的配色方案保持一致

colors={'Frogs':'red', 
        'Hogs':'green'}

df1['a'].value_counts().plot.pie(explode=[0,0.1],autopct='%1.1f%%',ax=ax[0],shadow=True, 
                                 colors=[colors[v] for v in df1['a'].value_counts().keys()])
df2['a'].value_counts().plot.pie(explode=[0,0.1],autopct='%1.1f%%',ax=ax[1],shadow=True, 
                                 colors=[colors[v] for v in df2['a'].value_counts().keys()])