После получения дат и значений из моей базы данных я хочу построить график с двумя строками, одна из которых представляет pure_results, а другая - application_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
Пример данных:
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 и apply_results как две отдельные линии или иметь возможностьпостроить две линии одновременно