2014-11-13 2 views
0

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

Вот мой код

%matplotlib inline  
    plt.boxplot(data_sgc) 
    plt.ylabel("Alignment Gap Score") 
    plt.xlabel("Locus") 
    plt.xticks(range(1,len(alignments.keys())+1), [i[1] for i in medians_sgc], rotation=90) 
    remove_border() 

раздражающе Я не могу показать вам изображение я получаю, потому что мне нужно 10 респ или что-то Daft подобное. Во всяком случае, я ожидаю, что мне нужно сделать что-то вроде set fig = plt .... и т. Д., Затем сделать что-то ниже этого.

Если вы достаточно любезны ответить, пожалуйста, имейте в виду, что я полный нуб, и что любая объяснительная информация, которую вы можете мне дать, будет очень оценена!

Вот ссылка на данные. Порядок: data_sgc, затем medians_sgc, затем выравнивание https://paste.ee/p/ay8zQ. Все они были только что напечатаны - dat_sgc не является полным, как вы увидите, но я надеюсь, что это даст вам контекст, чтобы понять проблему.

Все что мне нужно - это код, который позволит мне увеличить расстояние между графиками по оси x. Вот ссылка на текущий вывод, который я получаю https://maxjohnlunt12.files.wordpress.com/2014/11/download-2.png, хотя этот снимок экрана был сделан до того, как я добавил в аргумент, чтобы повернуть xlabels.

+0

http://stackoverflow.com/questions/16302718/reducing-the-distance-between-two-boxplots/16302837#16302837 <- вероятно, связано – tacaswell

+0

Пожалуйста, включите данные в '' data_sgc' и alignment' для создания [минимального, полного и проверяемого примера] (http://stackoverflow.com/help/mcve), чтобы мы могли лучше помочь вам. – MackM

+0

@MackM - Данные много тысяч символов - это действительно необходимо? –

ответ

1

ОК, я его отсортировал. Увеличено значение прироста в функциях диапазона и уменьшено размер шрифта xticks.

plt.boxplot(data_sgc, positions = range(4,(len(alignments.keys())*4), 4)) 
plt.ylabel("Alignment Gap Score") 
plt.xlabel("Locus") 
plt.xticks(range(4,((len(alignments.keys())+1)*4),4), [i[1] for i in medians_sgc], rotation=90, fontsize = 4) 
plt.tick_params(axis='x', pad=4) 
plt.tight_layout() 
remove_border() 
Смежные вопросы