2014-10-13 5 views
2

Я хочу построить некоторые данные с разбросом графика Matplotlib. Я использовал следующий код для построения данных как разброс с использованием тех же осей для разных подзаговоров.matplotlib изменение расстояния пробега по оси x

import numpy as np 
import matplotlib.pyplot as plt 

epsilon= np.array([1,2,3,4,5]) 

f, (ax1, ax2, ax3, ax4) = plt.subplots(4, sharex= True, sharey=True) 
ax1.scatter(epsilon, mean_percent_100_0, color='r', label='Totaldehnung= 0.000') 
ax1.scatter(epsilon, mean_percent_100_03, color='g',label='Totaldehnung= 0.003') 
ax1.scatter(epsilon, mean_percent_100_05, color='b',label='Totaldehnung= 0.005') 
ax1.set_title('TOR_R') 
ax2.scatter(epsilon, mean_percent_111_0,color='r') 
ax2.scatter(epsilon, mean_percent_111_03,color='g') 
ax2.scatter(epsilon, mean_percent_111_05,color='b') 
ax3.scatter(epsilon, mean_percent_110_0,color='r') 
ax3.scatter(epsilon, mean_percent_110_03,color='g') 
ax3.scatter(epsilon, mean_percent_110_05,color='b') 
ax4.scatter(epsilon, mean_percent_234_0,color='r') 
ax4.scatter(epsilon, mean_percent_234_03,color='g') 
ax4.scatter(epsilon, mean_percent_234_05,color='b') 

# Fine-tune figure; make subplots close to each other and hide x ticks for 
# all but bottom plot. 
f.subplots_adjust(hspace=0.13) 
plt.setp([a.get_xticklabels() for a in f.axes[:-1]], visible=False) 
plt.locator_params(axis = 'y', nbins = 4) 

ax1.grid() 
ax2.grid() 
ax3.grid() 
ax4.grid() 

plt.show() 

Теперь я хочу иметь ось x с меньшим пространством между каждой точкой. Я попытался изменить диапазон, но он не работал. Кто-нибудь может мне помочь? enter image description here

+0

Вы просто хотите, чтобы ваша фигура была «уже» в целом? Если это так, вы можете использовать аргумент ключевого слова 'figsize' в вашей команде' plt.subplots'. Если вы не просто хотите, чтобы ваша фигура была уже, вам нужно сказать немного больше о том, чего вы хотите. В частности, хотите ли вы получить лишние пробелы слева от вашей более жесткой оси X или справа или что-то еще? – 8one6

+0

расстояния между 1,2,3 ... должны быть меньше, поэтому да более плотно расположенная по оси X. – user3616531

ответ

1

Чтобы приблизить галочки x, вам, возможно, придется установить размеры фигуры.

Поскольку в вашем случае фигура уже создана, укажите размер участка, используя метод set_size_inches объекта figure.

This question содержит несколько других способов сделать то же самое.

Добавление следующей строки перед plt.show()

fig.set_size_inches(2,8) 

дает мне это:

enter image description here

который я надеюсь, что вы пытаетесь сделать.

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