从Matplotlib

时间:2019-04-10 21:13:49

标签: python matplotlib

从数据库中获取日期和值后,我想用两行来画图,其中一行代表pure_results,另一行代表Applied_results。我想将这些日期绘制在同一张图上。

我尝试将数据绘制在同一图形上,并使用下面的代码进行了一些处理。

我有两个表,在其中我得到time_stamp(它是一个日期)和SUM(Correct)(这是我绘制的值),然后得到GROUP BY time_stamp,从而导致重复的日期合并为一个并对数据进行排序(分为两个不同的列表) 。

def correct_graphs(user_id):
    dates_pure = []
    correct_pure = []
    dates_applied = []
    correct_applied = []
    sql_pure = "SELECT time_stamp,SUM(Correct) FROM pure_results WHERE user_id = ? GROUP BY time_stamp"
    sql_applied = "SELECT time_stamp, SUM(Correct) FROM applied_results WHERE user_id = ? GROUP BY time_stamp"
    cursor.execute(sql_pure, [(user_id)])
    for a in cursor.fetchall():
        dates_pure.append(a[0])
        correct_pure.append(a[1])
    cursor.execute(sql_applied, [(user_id)])
    for b in cursor.fetchall():
        dates_applied.append(b[0])
        correct_applied.append(b[1])
    plt.plot(dates_pure, correct_pure, label="Pure Progess")
    plt.plot(dates_applied, correct_applied, label="Applied Progess")
    plt.xlabel("Dates of Maths Question Attempted")
    plt.ylabel("Questions Correct")
    plt.title("Comparsion of Correct Progess")
    plt.legend()
    plt.show()

但是在两个表中的某些日期发生更改后,我希望输出是按日期顺序绘制的x轴,但是我的实际结果是matplotlib graph

示例数据:

dates_pure = ['2019-03-25', '2019-03-26', '2019-03-30', '2019-04-02', '2019-04-03']
correct_pure = [4, 6, 5, 6, 8]
dates_applied= ['2019-03-25', '2019-03-26', '2019-03-27', '2019-03-30', '2019-04-05']
correct_applied = [6, 3, 4, 10, 5]

我需要一种方法来合并两个列表并按时间顺序对其进行排序以固定x轴,然后能够将pure_results和applied_results绘制为两条单独的线,或者能够同时绘制这两条线

0 个答案:

没有答案
相关问题