Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在matplotlib/pandas中绘制相位变化_Python_Matplotlib_Pandas - Fatal编程技术网

Python 在matplotlib/pandas中绘制相位变化

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

我希望能够使用matplotlib和pandas基于google电子表格中的动态数据创建图形。我已经成功地用gspread查询了电子表格,保存到csv,并进行了绘图,但还没有找到相变线的解决方法。下面是一个格式示例:相变线需要落在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,因为我认为它会有更多的功能和特性来实现这一点,但我想不出有什么办法。有什么想法吗?

对于将来想做这件事的人,我发现以下线索很有帮助:

以下是一个可行的解决方案:

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来表达您应该使用的概念。如果你不能在熊猫框架的上下文中翻译这个概念,你应该寻求其他人的帮助,因为我不是熊猫人。。。