当前位置: 首页 > 知识库问答 >
问题:

按类别划分的直方图颜色

鞠乐
2023-03-14

我有一个熊猫数据帧,有2列“高度”和“类”,类是一个有3个值1,2和5的列。现在我想做一个直方图的高度数据和颜色按类。plot19_s[植被高度]。plot.hist(bins=10)

这是我的柱状图

但是现在我想通过直方图中颜色的变化来查看不同的类。

共有1个答案

轩辕弘雅
2023-03-14

因为我不确定潜在的重复是否真的回答了这里的问题,这是一种使用numpy.histogram和matplotlibbar图生成堆叠直方图的方法。

import pandas as pd
import numpy as np;np.random.seed(1)
import matplotlib.pyplot as plt

df = pd.DataFrame({"x" : np.random.exponential(size=100),
                   "class" : np.random.choice([1,2,5],100)})

_, edges = np.histogram(df["x"], bins=10)
histdata = []; labels=[]
for n, group in df.groupby("class"):
    histdata.append(np.histogram(group["x"], bins=edges)[0])
    labels.append(n)

hist = np.array(histdata) 
histcum = np.cumsum(hist,axis=0)

plt.bar(edges[:-1],hist[0,:], width=np.diff(edges)[0],
            label=labels[0], align="edge")

for i in range(1,len(hist)):
    plt.bar(edges[:-1],hist[i,:], width=np.diff(edges)[0],
            bottom=histcum[i-1,:],label=labels[i], align="edge")

plt.legend(title="class")
plt.show()
 类似资料:
  • 是否可以动态更改Gnuplot脚本中条的颜色?我有以下脚本 这将生成此绘图: 有没有可能使零度以下的色条变成红色? 谢谢, 斯文

  • 我正在用GnuplotPy绘制一些直方图,我想更改直方图条的颜色。(默认情况下,条形图为红色。)这篇StackOverflow文章中的答案给出了几个在普通Gnuplot中如何更改直方图条颜色的选项,但是我还无法让这些解决方案在GnuplotPy中工作。 以下是我使用的基本设置: 上面的代码没有尝试设置直方图条的颜色,它生成了一个带有红色条的直方图: 我尝试了几种方法将直方图条颜色更改为蓝色,但都没

  • 我试图显示一个图像的直方图,只显示一些颜色。我已经用JFreeChart和createXYLineChart实现了这一点,并通过遍历所有像素来获取所有数据。 为了加快速度,我尝试用“createhistogram”来完成它。我遵循了这个准则。 为了用新值更新图表,我使用了以下两种方法: setHistogram是一种方法,它根据激活的复选框(布尔红色、绿色和蓝色)返回HistogramDatase

  • 假设我有一个箱线图,如下所示: 我希望实现不同的颜色: > ,和将被涂成蓝色<代码>星期四将被涂成红色 我想用盒子里的图案来区分颜色(剥光的或其他的) 我找不到使用seaborn调色板进行此操作的方法。 我知道我可以直接在matplotlib中处理箱线图框,但seaborn将轴还给了我。在这种情况下,我怎样才能拿到箱子?

  • 根据类型将函数添加到类中的惯用方法是什么。下面的示例使用 List 作为类,并使用 Type 参数

  • 问题内容: 说我有一个箱形图,如下图所示: 我想获得不同的颜色: ,并显示为蓝色;会变成红色 我想用包装盒中的图案(条纹或其他)来区分色调 我找不到使用seaborn调色板进行此操作的方法。 我知道我可以直接在matplotlib中弄乱一个boxplot的盒子,但是seaborn给了我一些帮助。在这种情况下如何获得包装盒? 问题答案: 这些框最终出现在返回轴的列表中,因此您只需要操作这些对象上的属