我想知道如何以列为元素的列来绘制熊猫数据框的多条线图。
例如,我可以使用此数据绘制两个图:
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()
Run Code Online (Sandbox Code Playgroud)
但是,如何为以下数据绘制相似的两个图?
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]
Run Code Online (Sandbox Code Playgroud)
对于每个索引A和B,我都希望x轴=猪,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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33 次 |
| 最近记录: |