Как я могу использовать matplotlib, чтобы нарисовать эту картинку? - PullRequest
0 голосов
/ 25 апреля 2018

Я хочу использовать сетку для достижения этой цели.Однако я столкнулся со многими проблемами с заливкой цветом и осями. Я ссылаюсь на пример в официальной документации matplotlib, очень близкий к этому изображению enter image description here ссылка ),но все равно немного по-другому.

вот картинка enter image description here

Я виноват, картинка слишком большая quickly сложно реализовать быстро.Поэтому я выбираю часть исходного изображения , здесь :

enter image description here

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Я решил этот вопрос, используя seaborn.

from matplotlib import colors
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
cmap = colors.ListedColormap(['white','gray','blue','yellow'])
bounds=[0, 2, 4, 6, 8]
norm = colors.BoundaryNorm(bounds, cmap.N)
data = np.array([[1,1,1,1,7,7,7,7], [1,1,1,1,1,1,1,5], [1,1,1,1,1,1,1,5], [1,1,1,3,1,1,1,5], [1,1,1,1,1,1,3,5]])
ax = sns.heatmap(data, cmap=cmap, norm=norm, linewidths=.5, 
linecolor='black', square=True, cbar=False)
sns.plt.annotate('S', (1.4, 3.4))
sns.plt.show()

результат

0 голосов
/ 25 апреля 2018

Попробуйте с черчением пользовательские тепловые карты .Например,

from matplotlib import colors
import matplotlib.pyplot as plt
import numpy as np

cmap = colors.ListedColormap(['cyan','gray','white','yellow'])
bounds=[0, 10, 20, 30, 40]
norm = colors.BoundaryNorm(bounds, cmap.N)

data=np.array([[5,15,5],[25,32,6],[15,31,25]])
heatmap = plt.pcolor(data, cmap=cmap, norm=norm)
plt.show()

значение между 0-10 даст голубой цвет, 10-20 даст серый как так далее.Поэтому сделайте свой массив данных соответствующим образом.

Результат:

Heatmap

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...