2017-01-11 3 views
0

Я работаю над анализом данных о торнадо с 1996 по 2015 год. Я сравниваю количество торнадо с общей потерей имущества по штату.MATPLOTLIB - Увеличить масштаб для участка

У меня есть основной сюжет, но меньшие цифры наезжают слишком близко друг к другу

Tornado Plot

, что я хотел бы знать, как я могу масштабировать это так, чтобы распространить эти вне немного больше ?

Мой код для сюжета

count = tonadoes_1996_damage['count'] 
loss = tonadoes_1996_damage['total_loss'] 

max_tornado_count = tonadoes_1996_damage['count'].max() 
max_tornado_cnt_label = tonadoes_1996_damage[tonadoes_1996_damage['count'] == max_tornado_count].index.tolist()[0] 
max_tornado_cnt_x = tonadoes_1996_damage[tonadoes_1996_damage['count'] == max_tornado_count]['count'] 
max_tornado_cnt_y = tonadoes_1996_damage[tonadoes_1996_damage['count'] == max_tornado_count]['total_loss'] 

max_tornado_loss = tonadoes_1996_damage['total_loss'].max() 
max_tornado_loss_label = tonadoes_1996_damage[tonadoes_1996_damage['total_loss'] == max_tornado_loss].index.tolist()[0] 
max_tornado_loss_x = tonadoes_1996_damage[tonadoes_1996_damage['total_loss'] == max_tornado_loss]['count'] 
max_tornado_loss_y = tonadoes_1996_damage[tonadoes_1996_damage['total_loss'] == max_tornado_loss]['total_loss'] 

colors = np.random.rand(51) 
area = count 
plt.scatter(count, loss,s=area,c=colors,alpha=.5) 

xlab = "Number of Tornadoes [in thousands]" 
ylab = "Total Loss [in million USD]" 
title = "Total Property Loss Since 1996" 

plt.xlabel(xlab) 
plt.xlim(0, 3500) 

plt.ylabel(ylab) 
plt.ylim(0, 6000) 

plt.title(title) 
plt.grid(True) 

plt.text(max_tornado_cnt_x, max_tornado_cnt_y, max_tornado_cnt_label) 
plt.text(max_tornado_loss_x, max_tornado_loss_y, max_tornado_loss_label) 

plt.show() 

Я играл с установкой рентгеновских тиков и у-тиков, но те, похоже, не изменить масштаб, просто добавьте больше тиков (если не я я делаю что-то неправильно

+0

Вы можете выбрать здесь, в соответствии с вашими потребностями. http://matplotlib.org/gallery.html. я предлагаю показывать тенденции каждого года в разных сюжетах и ​​показать их и поместить все с 1996 по 2015 год на одном участке в виде простой сетки, если вы хотите показать комбинированный результат. [этот] (http://matplotlib.org/examples/axes_grid/simple_axesgrid.html) –

ответ

1

Вы можете использовать логарифмическую шкалу для оси х, и это позволит улучшить визуализацию:. http://matplotlib.org/examples/pylab_examples/log_demo.html

попробовать что-то вроде:

fig = plt.figure(figsize=(11, 8)) 
ax = fig.add_subplot(1, 1, 1) 
ax.set_xscale('log') 
plt.scatter(count, loss,s=area,c=colors,alpha=.5) 

, а затем добавить все свойства соответствующим образом.

Смежные вопросы