gpt4 book ai didi

python - 如何为我的数据集创建多线图?

转载 作者:行者123 更新时间:2023-11-28 21:04:14 24 4
gpt4 key购买 nike

我有以下 pandas DataFrame df:

df = pd.DataFrame(columns=["Event1", "Event2", "Event3"], 
data=[[15,1,22],
[16,1.26,80],
[27,0,15]])

df = df.set_index([["Series1", "Series2", "Series3"]])

我想创建一个 X 轴包含 Event1Event2Event3 的多线图,而 Y 轴应该是相应的数值值(value)。应该有 3 个系列:Series1Series2Series3

如何在 sns.pointplot(x=???, y=? ??, hue=???,data=df)?

plt.figure(figsize=(12,8))
ax = sns.pointplot(x=???, y=???, hue=???,data=df)
ax.grid(b=True, which='major', color='#d3d3d3', linewidth=1.0)
ax.grid(b=True, which='minor', color='#d3d3d3', linewidth=0.5)
plt.show()

最佳答案

将数据透视表 df 重组为经典数据框并根据需要绘制:

import matplotlib.pylab as plt
import pandas as pd
import seaborn as sns

df = pd.DataFrame(columns=["Event1", "Event2", "Event3"],
data=[[15,1,22],
[16,1.26,80],
[27,0,15]])
df = df.set_index([["Series1", "Series2", "Series3"]])
print(df)

# reorganize df to classic table
df2=df.stack().reset_index()
df2.columns = ['Series','Event','Values']
print(df2)

plt.figure(figsize=(12,8))
ax = sns.pointplot(x='Event', y='Values', hue='Series',data=df2)
ax.grid(b=True, which='major', color='#d3d3d3', linewidth=1.0)
ax.grid(b=True, which='minor', color='#d3d3d3', linewidth=0.5)
plt.show()

enter image description here

df2:

    Series   Event  Values
0 Series1 Event1 15.00
1 Series1 Event2 1.00
2 Series1 Event3 22.00
3 Series2 Event1 16.00
4 Series2 Event2 1.26
5 Series2 Event3 80.00
6 Series3 Event1 27.00
7 Series3 Event2 0.00
8 Series3 Event3 15.00

关于python - 如何为我的数据集创建多线图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45548415/

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