Python 在matplotlib/pandas中绘制相位变化
我希望能够使用matplotlib和pandas基于google电子表格中的动态数据创建图形。我已经成功地用gspread查询了电子表格,保存到csv,并进行了绘图,但还没有找到相变线的解决方法。下面是一个格式示例:相变线需要落在x轴值之间,无论刻度是在日期还是会话中。数据路径也不能跨相变线连接 这是我目前正在使用的代码Python 在matplotlib/pandas中绘制相位变化,python,matplotlib,pandas,Python,Matplotlib,Pandas,我希望能够使用matplotlib和pandas基于google电子表格中的动态数据创建图形。我已经成功地用gspread查询了电子表格,保存到csv,并进行了绘图,但还没有找到相变线的解决方法。下面是一个格式示例:相变线需要落在x轴值之间,无论刻度是在日期还是会话中。数据路径也不能跨相变线连接 这是我目前正在使用的代码 import gspread import csv import pandas as pd import numpy as np impor
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,因为我认为它会有更多的功能和特性来实现这一点,但我想不出有什么办法。有什么想法吗?对于将来想做这件事的人,我发现以下线索很有帮助: 以下是一个可行的解决方案:
plt.axvline(x=2.5, ymin=0, ymax = 1.0, linewidth=1, color='k')
仍在试图找出除了插值空值之外,如何不让数据路径跨其他路径连接解决您在回答中的最后一条评论,假设您有以下阶段变化
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:])
这看起来像它会做什么,我想要的,但我必须实现它不正确。我得到一个x未定义错误。有什么建议吗?谢谢你的帮助!很抱歉,我不会说Pandas,所以我尝试使用通用名称x和y以及通用pyplot API来表达您应该使用的概念。如果你不能在熊猫框架的上下文中翻译这个概念,你应该寻求其他人的帮助,因为我不是熊猫人。。。