首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制时间序列散点图

绘制时间序列散点图
EN

Stack Overflow用户
提问于 2017-04-18 05:18:02
回答 1查看 10.6K关注 0票数 1

我有以下数据-

代码语言:javascript
复制
ProductName    01/01/2016    01/07/2016    01/14/2017
ABC              12             34            51
XYZ               9             76            12
PQR              12             23             7
DEF              54              4            34

我想绘制一个时间序列散点图,显示每天的总销售额。我创建了以下函数-

代码语言:javascript
复制
def scatterplot(x_data, y_data, x_label, y_label, title):
_, ax = plt.subplots()
ax.scatter(x_data, y_data, s = 30, color = '#539caf', alpha = 0.75)

ax.set_title(title)
ax.set_xlabel(x_label)
ax.set_ylabel(y_label)

我不知道如何调用这个函数来获得我想要的结果。曲线图应该在x轴上显示日期,在y轴上显示总销售额。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-18 19:05:24

如果您的数据在pandas DataFrame中,您可以将列标题作为x值,并将沿垂直轴的数据总和(即当天售出的产品总数)作为y值。

代码语言:javascript
复制
import pandas as pd
import matplotlib.pyplot as plt

# replicate Data from question in DataFrame
v = [[12,34,51], [9,76,12], [12,23,7], [54,4,34]]
df = pd.DataFrame(v, columns=["01/01/2016","01/07/2016","01/14/2017"], 
                      index=["ABC", "XYZ", "PQR", "DEF"])
print(df)


def scatterplot(x_data, y_data, x_label, y_label, title):
    fig, ax = plt.subplots()
    ax.scatter(x_data, y_data, s = 30, color = '#539caf', alpha = 0.75)

    ax.set_title(title)
    ax.set_xlabel(x_label)
    ax.set_ylabel(y_label)
    fig.autofmt_xdate()

#use column headers as x values
x = pd.to_datetime(df.columns, format='%m/%d/%Y')
# sum all values from DataFrame along vertical axis
y = df.values.sum(axis=0)    
scatterplot(x,y, "x_label", "y_label", "title")

plt.show()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43459786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档