Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/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 使用特定值改变条形图中每个条的颜色_Python_Matplotlib - Fatal编程技术网

Python 使用特定值改变条形图中每个条的颜色

Python 使用特定值改变条形图中每个条的颜色,python,matplotlib,Python,Matplotlib,我有一个如下所示的条形图: 在这种情况下,让我们假设G1-G5组中的每一组代表每组中男性在某些考试中的平均分数,而每组中的女性在同一考试中的平均分数 现在让我们假设我有一些与每个组相关的其他特性(平均喜欢度(浮动在1-5之间)) 假设1-不讨人喜欢,5-非常讨人喜欢 我想知道如何通过更改颜色的阴影,将可爱性这一特性融入到每个条中示例: 由于上例中第1组的男性有1.33,因此他们的图表将比G2组的男性有更浅的红色阴影,因为G2组的男性有5.0的可爱度,所以他们的条形图将是图表中最深的红色阴影,对于

我有一个如下所示的条形图:

在这种情况下,让我们假设G1-G5组中的每一组代表每组中男性在某些考试中的平均分数,而每组中的女性在同一考试中的平均分数

现在让我们假设我有一些与每个组相关的其他特性(平均喜欢度(浮动在1-5之间))

假设1-不讨人喜欢,5-非常讨人喜欢

我想知道如何通过更改颜色的阴影,将可爱性这一特性融入到每个条中示例: 由于上例中第1组的男性有1.33,因此他们的图表将比G2组的男性有更浅的红色阴影,因为G2组的男性有5.0的可爱度,所以他们的条形图将是图表中最深的红色阴影,对于女性来说也是如此

我希望我已经讲清楚了。如果有人能给我指出matplotlib中可以实现这一点的资源,我将不胜感激,因为我对这个软件包非常陌生


提前感谢。

条形码将颜色列表作为参数。只需输入您想要的颜色即可

import matplotlib.pyplot as plt
import matplotlib.cm as cm
from matplotlib.colors import Normalize
from numpy.random import rand

fig, ax = plt.subplots(1, 1)
# get a color map
my_cmap = cm.get_cmap('jet')
# get normalize function (takes data in range [vmin, vmax] -> [0, 1])
my_norm = Normalize(vmin=0, vmax=5)
# some boring fake data
my_data = 5*rand(5)
ax.bar(range(5), rand(5), color=my_cmap(my_norm(my_data)))

plt.show()

r、 g,b值从0到1运行。以下是红色映射:

       "red": [(0, 1.0, 1.0),
               (1.0, .5, .5)],
每个元组中的第一个元素指定标准化的可爱度分数。每个元组中的第二个元素指定红色的阴影(0-1)。每个元组中的第三个元素用于更复杂的内容,因此这里它始终与第二个元素相同

红色映射指定0-1.0(每个元组的第一个元素)之间的标准化相似度得分将映射到100%红色到50%红色(每个元组的第二个元素)的范围。标准化的亲和力得分0将映射为100%红色,标准化的亲和力得分1.0将映射为50%红色。将最暗的红色设置为50%可以防止红色变得太暗,看起来像棕色或黑色

您可以指定任意数量的元组——您只需确保为规范化的亲和力分数的整个范围(0-1)指定红色值,例如:

       "red": [(0, .5, .5),
               (.8, .6, .6),
               (1.0, .9, .9)],
你不能这样做:

       "red": [(0, .5, .5),
               (.8, 1.0, 1.0)],

没错,但在这里,条形图的颜色取决于其y轴的值,y轴作为列表传递给条形图。我想为每个酒吧添加一个附加功能,其中酒吧的颜色表示评级(例如,如果我们谈论每周餐厅评论的数量,酒吧的颜色将是给定周内评论的正面或负面程度(正面是粉红色,负面是红色或其他)有没有办法做到这一点?请重新阅读答案(并查看编辑以使其更清楚)。这正是你想要的。这正是你想要的。那张图看起来肯定不像op要求的任何东西。@7stud我想op足够聪明,可以理解颜色贴图。@tacaswell请你帮助我如何显示颜色贴图。
       "red": [(0, .5, .5),
               (.8, .6, .6),
               (1.0, .9, .9)],
       "red": [(0, .5, .5),
               (.8, 1.0, 1.0)],
import pandas as pd
import matplotlib.pyplot as plt  

df = pd.DataFrame([1,2,3,4], [1,2,3,4])   
color = ['red','blue','green','orange']
df.plot(kind='bar', y=0, color=color, legend=False, rot=0)