Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 3.x 如何将颜色附加到pandas barh绘图中的特定值?_Python 3.x_Pandas_Plot_Colors_Colormap - Fatal编程技术网

Python 3.x 如何将颜色附加到pandas barh绘图中的特定值?

Python 3.x 如何将颜色附加到pandas barh绘图中的特定值?,python-3.x,pandas,plot,colors,colormap,Python 3.x,Pandas,Plot,Colors,Colormap,我目前正在使用colormap为pandas数据框中的堆叠条形图着色。问题是,我想绘制多个图。(见图) 现在,colormap使用每个数据集的最小值和最大值来指定颜色。我想通过以下方式改变这一点: 相同的颜色应始终表示相同的值(即使最小值不同) 理想情况下,我希望只指定一次,而不是每次创建新绘图时都指定它们 有没有办法从颜色贴图中获取颜色并将其附加到特定值 前面的几个问题涉及一个非常类似的主题,例如: 然而,我发现的问题中没有一个是关于barplots的 这是我的密码: import p

我目前正在使用colormap为pandas数据框中的堆叠条形图着色。问题是,我想绘制多个图。(见图)

现在,colormap使用每个数据集的最小值和最大值来指定颜色。我想通过以下方式改变这一点:

  • 相同的颜色应始终表示相同的值(即使最小值不同)
  • 理想情况下,我希望只指定一次,而不是每次创建新绘图时都指定它们
有没有办法从颜色贴图中获取颜色并将其附加到特定值

前面的几个问题涉及一个非常类似的主题,例如: 然而,我发现的问题中没有一个是关于barplots的

这是我的密码:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'DN': [20, 25, 32, 40, 50],
                   'Fall 1': [200, 300, 450, 200, 80],
                   'Fall 2': [250, 250, 450, 210, 70],
                   'Fall 3': [300, 200, 350, 310, 70]})

gesamtlaenge = 200 + 300 + 450 + 200 + 80

df = df.set_index('DN')
df = df.transpose()

# Skalierung auf Maximum:
df = df.divide(gesamtlaenge, axis=0)
df = df.multiply(100, axis=0)

f, b = plt.subplots(figsize=(9, 6))

ax = df.plot(ax=f.gca(),
                  title='titel',
                  kind='barh', stacked=True,
                  colormap='summer_r',
                  edgecolor='black',
                  fontsize=14)

ax.legend(loc='center left', bbox_to_anchor=(1, 0.5), fontsize=14)
ax.set_xlabel('Anteil in %', fontsize=14)
ax.set_title('title', fontsize=14)

f.tight_layout()
f.subplots_adjust(right=0.8)  

plt.show()
我使用的第二个数据帧:

df = pd.DataFrame({'DN': [25, 32, 40, 50],
                   'Fall 1': [300, 450, 200, 80],
                   'Fall 2': [250, 500, 210, 70],
                   'Fall 3': [200, 350, 310, 170]})