gpt4 book ai didi

python - 在一个图中叠加三个直方图

转载 作者:太空宇宙 更新时间:2023-11-04 11:11:40 25 4
gpt4 key购买 nike

我正在尝试使用来自 Pandas DataFrame 的数据绘制类似这样的图。日期是 0 到 100 之间的数字,表示百分比。我有 3 列代表 3 个不同的类别,每个类别都有百分比值。

我想得到什么:

perfect hist example

使用这段代码我得到了什么:

df_margins = pd.read_excel("path to excel file")
df_margins.reset_index(drop=True, inplace=True)
df_margins_sort = pd.DataFrame(np.sort(df_margins.values, axis=0), index=df_margins.index, columns=df_margins.columns)
df_margins_sort.hist( alpha=0.5)

result 1

尝试使用 seaborn 库我得到了这个:

x = df_margins_sort["safety_margin_distribution_0"].tolist()
y = df_margins_sort["safety_margin_distribution_5"].tolist()
z = df_margins_sort["safety_margin_distribution_10"].tolist()
ggg = [x,y,z]
fig, ax = plt.subplots()
for a in ggg:
sns.distplot(a, bins=range(1, 100, 10), ax=ax, kde=False)
ax.set_xlim([0, 100])

seaborn results

我正在尝试绘制的数据的屏幕截图: data example

79.6657 8.3008  12.0334
28 72 0
51.4077 48.5923 0
84.1176 2.7451 13.1373
79.5455 1.0101 19.4444
51.9205 48.0795 0
57.2877 6.5906 36.1217
71.2589 11.4014 17.3397
56.2624 43.7376 0
76.4228 0 23.5772
51.8473 6.6502 41.5025
74.8555 25.1445 0
85.8254 14.1746 0
63.2754 0.7444 35.9801

最佳答案

您可以尝试将单个历史记录绘制到同一轴上:

np.random.seed(1)
df = pd.DataFrame(np.random.randint(0,10,(100,3)), columns=list('abc'))

fig, ax = plt.subplots()

for col in df.columns:
df[col].hist(alpha=0.3, ax=ax, label=col)

ax.legend()

输出,顺便说一下,它看起来像您的 seaborn 输出:

enter image description here

关于python - 在一个图中叠加三个直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58085028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com