сделать hexbin в python matplotlib заполнить пустое пространство на квадратной оси? - PullRequest
5 голосов
/ 11 декабря 2011

Я пытаюсь использовать hexbin для построения некоторых данных на квадратной оси.Я использую следующее:

import matplotlib.cm as cm                              
plt.figure()  
num_pts = 1000             
x = rand(num_pts) * 100                                                                          
y = rand(num_pts) * 250              
x_min = 0               
x_max = 150                       
x_step = 25

y_min = 50           
y_max = 300                          
y_step = 50       

s = plt.subplot(1,1,1)                                                                                                                              
plt.hexbin(x,y,cmap=cm.jet,gridsize=20)             
plt.xticks(range(x_min,x_max+x_step,x_step))                                                                                                                           
plt.yticks(range(y_min,y_max+y_step,y_step))                                                                                                                           
# square axes                
s.axes.set_aspect(1/s.axes.get_data_ratio())   

Я бы хотел, чтобы оси были квадратными, и я хочу установить свои собственные ограничения xticks / yticks и xy.для некоторых значений осей данных не будет, и поэтому счетчики, вычисленные с помощью hexbin, должны быть равны нулю - я бы хотел, чтобы hexbin отображал это как пустое пространство, а не оставлял его "белым" / пустым, если вы используетецветовая карта cm.jet.

Теперь я получаю вот что.

Как мне получить его, чтобы заполнить пустое пространство с помощью его карты цветов?спасибо. enter image description here

Ответы [ 2 ]

9 голосов
/ 11 декабря 2011

Я полагаю, что ответ заключается в использовании аргумента экстента = ключевого слова, например:

plt.hexbin(x, y, cmap=cm.jet, gridsize = 20, extent=[x_min, x_max, y_min, y_max]) 
4 голосов
/ 16 января 2014

Вы также можете просто создать ось и установить ее цвет фона на минимальное значение цветовой карты (или любой другой цвет по вашему желанию):

fig = plt.figure()
ax = fig.add_subplot(111,axisbg=cm.jet(0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...