#matplotlib #seaborn #heatmap
#matplotlib #сиборн #тепловая карта
Вопрос:
У меня есть большой набор данных, из которого я получаю квадратную матрицу, которую я хотел бы визуализировать как тепловую карту. Я использую Matplotlib и Seaborn. К сожалению, похоже, что это работает только для относительно небольшого объема данных.
size = 10000
similarity_matrix = np.random.rand(size, size)
fig, ax = plt.subplots()
sns.heatmap(similarity_matrix, vmin=0, vmax=1)
plt.savefig("matrix.png")
Это перестает работать приблизительно size=6000
, что приводит к белой тепловой карте.
Ответ №1:
imshow
или matshow
, кажется, работает нормально:
np.random.seed(42)
size = 10000
similarity_matrix = np.random.rand(size, size)
plt.imshow(similarity_matrix, cmap='hot')
plt.colorbar()
Вывод:
Ответ №2:
- Исходный код не сгенерировал для меня график
- Изменив
fig, ax = plt.subplots()
наplt.figure(figsize=(14, 14))
, работал над созданием графика.- При
figsize=(10, 10)
этом рисунок не отображался в Jupyter, но правильное изображение было сохранено в файл. - Цифра, меньшая, чем
figsize=(14, 14)
, не будет отображаться в Jupyter.
- При
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# create matrix
size = 10000
similarity_matrix = np.random.rand(size, size)
# plot matrix
# create figure and set size
plt.figure(figsize=(14, 14))
# add heatmap
sns.heatmap(similarity_matrix, vmin=0, vmax=1)
# save the figure
plt.savefig('test.png', dpi=600)
# show the figure; this was slow
plt.show()