在matplotlib/pandas中绘制相位变化

2024-03-28 17:01:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能够使用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,因为我认为它会有更多的功能和特性来实现这一点,但我想不出办法。有什么想法吗?在


Tags: csvimportclientpandasmatplotlibasgoogleplt
2条回答

对于任何将来想做这件事的人来说,我发现下面的线索很有帮助:vertical & horizontal lines in matplotlib

这里有一个可行的解决方案:

plt.axvline(x=2.5, ymin=0, ymax = 1.0, linewidth=1, color='k')

仍在试图找出如何不让数据路径相互连接(而不是插入空值)

在回答你的最后一句话时,假设你有以下阶段的变化

changes = [20,35,55]

可以像这样绘制未连接的部分

^{pr2}$

相关问题 更多 >