我如何使用在matplotlib中设置的自定义数字来自定义栏中的颜色?

问题描述 投票:0回答:1

我正在尝试根据整数值向条形添加颜色,可以说值是1到20,1是最亮的颜色,而20是最暗的颜色,但是到目前为止,所有颜色都不能相同我使用的是不正确的colorbar方法:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.DataFrame({'values': [17, 16, 16, 15, 15, 15, 14, 13, 13, 13]})
df.plot(kind='barh')
plt.imshow(df)
plt.colorbar()
plt.show()

但是它给出了一个奇怪的结果:

Weird plot

python pandas matplotlib plot colorbar
1个回答
0
投票

我刚刚意识到使用plt.barhcolormaps提供了更好的绘图,请使用:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'values': [0, 0, 0, 0, 0, 17, 16, 16, 15, 15, 15, 14, 13, 13, 13]})
df = df.sort_values(by='values').reset_index(drop=True)
s = df['values'].replace(0, df.loc[df['values'] != 0, 'values'].min())
s = s.sub(s.min())
colors = (1 - (s / s.max())).astype(str).tolist()
plt.barh(df.index, df['values'].values, color=colors)
plt.show()

哪个给:

© www.soinside.com 2019 - 2024. All rights reserved.