Я пытаюсь построить карту тепла с осью x с интервалом времени (с шагом 5 минут), а по оси Y - определенное видео, которое просматривалось в Интернете.Сортировка данных при построении тепловой карты
Все идет хорошо, и данные хороши. Например, набор данных может выглядеть следующим образом:
[[0.5, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.5, 0.0, 0.0, 1.5, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]]
Это означает, что есть две строки и 22 столбцов (0:00:00 - 1:45:00).
Я использую этот код, чтобы построить Heatmap:
def printheatmap(title,names,data):
data = np.array(data)
fig, ax = plt.subplots()
fig = plt.gcf()
fig.set_size_inches(8, 11)
heatmap = ax.pcolormesh(data, cmap=plt.cm.Blues, edgecolors='black')
ax.set_title(title)
ax.set_xticks(np.arange(data.shape[1])+0.5, minor=False)
ax.set_yticks(np.arange(data.shape[0])+0.5, minor=False)
ax.xaxis.tick_bottom()
ax.set_xticklabels(times, minor=False, weight='ultralight', rotation=40, ha='right')
ax.set_yticklabels(names, minor=False)
ax.grid(False)
plt.colorbar(heatmap)
plt.show()
Но по какой-то причине, вторая строка получает график первого в тепловой карте:
Как вы можете видеть, тот, который начинается с (0,5; 0; 0; 1,5), находится в верхней части диаграммы с правильной меткой. Есть ли способ, которым я могу «сохранить» сортировку, которую я делаю вручную?
Ось Y не инвертирована. С большим набором данных, сюжет кажется совершенно случайным образом (но, по-видимому, самые высокие баллы в нижней части), в то время как последняя строка должна быть:
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0].
Вот еще одна картина. Я отсортированный набор данных по дате, но она просто шифрует его:
EDIT: Фиксированный его. По-видимому, использование пользовательских функций XPath для сортировки ваших данных не очень хорошо работает с matplotlib. Сортировка вручную, казалось, сделала трюк.
Он не похож на Y-оси перевернутая. С большим набором данных данные становятся еще более скремблированными, и, похоже, он имеет верхний итоговый результат внизу. См. Мой отредактированный пост. –
@MatsWillemsen на самом деле я уверен, что вы подразумеваете под «сортировкой», образцы данных, которые вы показываете, не отсортированы, не так ли? – zhangxaochen
Это, фактически. Он сортируется по дате (не включенной в данные); но я понял это сейчас! См. Выше. –