#python #matplotlib
#python #matplotlib
Вопрос:
После получения дат и значений из моей базы данных я хочу отобразить это с помощью двух строк, одна из которых представляет pure_results, а другая — applied_results. Я хочу отобразить эти даты на одном и том же рисунке.
Я попытался отобразить данные на одном и том же рисунке, и это немного сработало, используя приведенный ниже код.
У меня есть две таблицы, в которых я получаю time_stamp, которая является датой, вместе с SUM (правильной), которая является значением, которое я отображаю, а затем ГРУППИРУЮ ПО 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 и applied_results в виде двух отдельных строк или иметь возможность отображать две строки одновременно
Комментарии:
1. вам необходимо отсортировать значения перед построением
2. Кажется, есть дублированная дата для 2019-03-30. Почему это так? Возможно, вам нужно будет сгруппировать их. Однако не уверен, нужно ли вам среднее значение или сумма. Иначе ваши данные не упорядочены
3. Я думаю, вам нужно немного лучше указать свой вопрос и, возможно, отсортировать значения, как сказал Макарош
4. Даты указаны в порядке в отдельных списках, но при построении они не в порядке, и если я сортирую списки вместе, я не могу правильно отобразить две строки. Если я упорядочил данные в одном списке, я не могу правильно отобразить значения.