【问题标题】:Plotting phase changes in matplotlib/pandas在 matplotlib/pandas 中绘制相位变化
【发布时间】:2014-11-19 00:06:10
【问题描述】:

我希望能够使用 matplotlib 和 pandas 根据来自谷歌电子表格的动态数据创建图表。我已经成功地使用 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,因为我认为它会有更多的功能和特性来实现这一点,但我想不出办法。有什么想法吗?

【问题讨论】:

    标签: python matplotlib pandas


    【解决方案1】:

    对于希望将来这样做的任何人,这是我发现有帮助的线程:vertical & horizontal lines in matplotlib

    这是一个可行的解决方案:

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

    仍在试图弄清楚如何不让数据路径连接(除了插入空值)

    【讨论】:

      【解决方案2】:

      解决您在答案中的最后一条评论,假设您有以下阶段变化

      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,所以我尝试使用通用名称(xy)和通用 pyplot API 来表达您应该使用的概念。如果你不能在 Pandas frame 上下文中翻译这个概念,你应该寻求其他人的帮助,因为我不是 Pandas 人...
      猜你喜欢
      • 2015-01-09
      • 2019-08-22
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-14
      • 2022-01-19
      • 2014-03-24
      相关资源
      最近更新 更多