带有日期

时间:2017-02-09 20:38:47

标签: python matplotlib plot

我在GUI中有一个图表,只需点击一下按钮即可打开。它从一个不断更新的csv文件打开,因此在开头计数,我想限制x轴的条目数。

该图适用于四条线但是,我无法细化x轴,我想做的是;

  1. 旋转字体
  2. 删除日期的尾随零
  3. 可能会将日期格式更改为D-M-Y H:M
  4. 以下脚本是我目前所拥有的:

    def open_graph():
        import numpy as np
        import matplotlib.pyplot as plt
        import datetime as dt 
        from dateutil import parser
        from csv import reader
        with open('Voltage_Readings.csv','r') as f:
            data = list(reader(f))
    
        file=open('Voltage_Readings.csv')
        numlines=(len(file.readlines())-1)
        start=numlines-100
        end=numlines
    
        fig=plt.figure()
        ax=plt.subplot(111)
    
        DTG = [parser.parse(i[1]) for i in data[start:end]]
        Battery_Level = [i[2] for i in data[start:end]]
        Gene_Supply = [i[3] for i in data[start:end]]
        Solar_Supply = [i[4] for i in data[start:end]]
        Wind_Supply = [i[5] for i in data[start:end]]
    
        plt.plot(DTG, Battery_Level,'-r', label='Battery')
        plt.plot(DTG, Gene_Supply,'-y', label='Gene')
        plt.plot(DTG, Solar_Supply,'-b', label='Solar')
        plt.plot(DTG, Wind_Supply,'-g', label='Wind')
    
        box = ax.get_position()
        ax.set_position([box.x0, box.y0, box.width *0.85, box.height])
        ax.legend(bbox_to_anchor=(1, 1),loc=2)
    
        plt.title('VOLTAGE MEASUREMENTS FROM POWER SOURCES')
        plt.xlabel('Time')
        plt.ylabel('Voltage')
    
        plt.show()
    

    我很感激任何帮助都能够实现这一点,因为我还在学习。

1 个答案:

答案 0 :(得分:0)

这是一个更好的答案:

只需在plt.show()命令之前添加:

1        ../sysdeps/unix/syscall-template.S: No such file or directory

运行autofmt_xdate会使日期倾斜。 将鼠标悬停在某个点上时,设置ax.fmt_xdata可设置日期格式。 运行ax.xaxis.set_major_formatter在x轴上设置日期格式。

有趣的是,在我自己的matplotlib代码中,我已经在x轴上完成了我自己的日期格式,因为我不知道这些自动格式化功能。我将不得不修改我的代码以使用matplotlib中的内容。

巴比