我是Python的初学者,我正在使用Matplotlib和Pandas创建堆积区域图(例如https://python-graph-gallery.com/251-stacked-area-chart-with-seaborn-style/)。不幸的是,它不起作用。我有以下包含数据的文件:
现在,我需要存储每列中的值,为此,我使用以下命令:
ts_1 = wind_data.Building_1;
ts_2 = wind_data.Building_2;
ts_3 = wind_data.Building_3;
ts_4 = wind_data.Building_4;
ts_5 = wind_data.Building_5
y= [ts_1, ts_2, ts_3, ts_4, ts_5];
如果我现在在上面的示例链接的命令中使用此命令:
# library
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# Data
x=range(1,6)
# Plot
plt.stackplot(x,y, labels=['A','B','C'])
plt.legend(loc='upper left')
plt.show()
我收到一条错误消息。我认为问题在于,当我读取变量ts_1中的单列时,我并不仅获得值,还获得了索引,如下图所示:
如果我只能将值存储在没有索引的列的变量中,我希望可以创建堆栈图。我该怎么办?
答案 0 :(得分:1)
这是一种简单的方法:
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
# sample data, in your case this is wind_data
df = pd.DataFrame({'A': [1,2,3], 'B':[2,3,4], 'C': [5,6,7], 'D': [6,7,8]})
# from here, replace df with wind_data
x = range(df.shape[1])
y = df.values.tolist()
plt.stackplot(x,y, labels=df.columns)
plt.legend(loc='upper left')
plt.show()
或者,您也可以这样做:
wind_data.plot.area() # or you can also do df.plot.area()