gpt4 book ai didi

python - 如何使用具有列表值的列在 Pandas 中创建多条线图?

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

我想知道如何使用以列表作为元素的列为 pandas 数据框绘制多线图。

例如,我可以使用这些数据绘制两个图:

import numpy as np
import pandas as pd
import seaborn as sns
sns.set(color_codes=True)

import matplotlib.pyplot as plt
%matplotlib inline

df = pd.DataFrame({
'pig': [20, 18, 489, 675, 1776],
'horse': [4, 25, 281, 600, 1900]},
index=[1990, 1997, 2003, 2009, 2014])

df.plot.line()

但是,如何为以下数据绘制相似的两个图?

df1 = pd.DataFrame({
'pig': [[20, 18, 489, 675, 1776],[20, 18, 489, 675, 1776]],
'horse': [[14, 25, 271, 700, 1900],[14, 65, 381, 600, 1900]]},
index=['A','B']
)

print(df1)
pig horse
A [20, 18, 489, 675, 1776] [14, 25, 271, 700, 1900]
B [20, 18, 489, 675, 1776] [14, 65, 381, 600, 1900]

对于每个索引 A 和 B,我想要 x 轴 = pig 和 y 轴 = 马图。但我不确定该怎么做。非常感谢您的帮助。

最佳答案

您可以遍历索引,虽然这不是 Pandas 中的最佳做法,但它适用于您的情况:

import pandas as pd
import matplotlib.pyplot as plt

df1 = pd.DataFrame({
'pig': [[20, 18, 489, 675, 1776],[20, 18, 489, 675, 1776]],
'horse': [[14, 25, 271, 700, 1900],[14, 65, 381, 600, 1900]]},
index=['A','B']
)

for idx in df1.index.values:
plt.plot(df1['pig'].loc[idx], df1['horse'].loc[idx], label=idx)
plt.legend()
plt.xlabel('Pig')
plt.ylabel('Horse')
plt.show()

enter image description here

关于python - 如何使用具有列表值的列在 Pandas 中创建多条线图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57454987/

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