2016-09-07 3 views
1

Извините, если это действительно глупый вопрос, я много раз искал, но не мог найти ответ. Я использую matplotlib для генерации графиков для некоторых данных, но вам необходимо выделить расстояние между точками оси y.Как изменить расстояние между точками оси y в matplotlib?

Так вот как я его в настоящее время matlibplot

И я хочу, чтобы быть разнесены как это sampleplot

ratioticks = (0.00001, 0.0001, 0.001, 0.01, 0.1, 1) 
line = plt.plot(x, ratioy, label='BCR:ABL1 ratio(IS)') 
line2 = plt.plot(x, sensy, label='Sensitivity of Detection (1/ABL1)') 
line3 = plt.plot(x, sensx, label='Target Sensitivity') 
line4 = plt.plot(x, mrx, label='MMR') 
plt.setp(line, color='r', linewidth=2.0) 
plt.setp(line2, color='g', linewidth=2.0) 
plt.setp(line3, color='b', linewidth=2.0) 
plt.setp(line3, color='m', linewidth=2.0) 
plt.grid(which='both') 
plt.yticks(ratioticks) 
plt.ylabel('Ratio on Log Scale') 
plt.xlabel('Date') 
plt.title('Level of BCR:ABL1 normalised to ABL1 on the International Scale (IS)') 
plt.show() 

Заранее спасибо :)

+0

Похоже, что ваша ось y не является логарифмической шкалой. попробуйте 'ax.set_yscale (" log ")' для этой оси. Трудно быть окончательным, не видя кода, с которым вы сделали сюжет. – Andrew

+0

Редактировать, чтобы добавить код –

+0

Да, похоже, что ось y линейна, поэтому вы только что применили логарифмические тики к линейной шкале, чтобы она соответствовала соответствующим образом – Andrew

ответ

1

Вам нужен вызов:

plt.yscale("log") 
+0

Спасибо! Я пробовал это раньше, и это не правильно построило, но оказалось, что причиной было нуль в наборе данных, поэтому проблема с данными. упс! –

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