我希望能够使用matplotlib & pandas根据google电子表格中的动态数据创建图形。我已经成功地使用gspread查询电子表格,保存到csv,并绘制,但还不能想出一个解决相变线的方法。以下是格式的一个示例:http://www.ebbp.org/course_outlines/critical_appraisal/pdfs/SSRD-1.gif无论刻度是日期还是会话,相变线都需要落在x轴值之间。数据路径也不能跨相变线连接。
下面是我目前正在使用的代码
import gspread
import csv
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import getpass
usernm = raw_input("Enter Username")
pw = getpass.getpass("Enter password for user %s: " % usernm)
gc = gspread.login(usernm, pw)
client = raw_input("Which client profile would you like to see?")
wks = gc.open(client)
for i, worksheet in enumerate(wks.worksheets()):
filename = client + '-worksheet' + str(i) + '.csv'
with open(filename, 'wb') as f:
writer = csv.writer(f)
writer.writerows(worksheet.get_all_values())
df = pd.read_csv('CSV FILE HERE', sep=',')
df.plot(x='Date', grid=False, marker='o', color='k', title='Hello')
plt.show()我从使用google的可视化API转移到python和matplotlib,因为我认为它会有更多的功能和特性来实现这一点,但我想不出有什么办法。有什么想法吗?
发布于 2014-11-19 08:44:31
对于将来想要这样做的人,这里有一个我发现很有帮助的帖子:vertical & horizontal lines in matplotlib
这是一个可行的解决方案:
plt.axvline(x=2.5, ymin=0, ymax = 1.0, linewidth=1, color='k')仍然在尝试找出如何不跨数据路径连接(而不是插值空值)
发布于 2014-11-19 09:22:39
对于您在回答中的最后一个评论,假设您有以下阶段的更改
changes = [20,35,55]您可以像这样绘制未连接的部分
first = 0
for c in changes:
plt.plot(x[first:c], y[first:c])
first = c+1
plt.plot(x[first:],y[first:])https://stackoverflow.com/questions/27006581
复制相似问题