2016-12-06 11 views
2

Я пытаюсь построить гистограмму с логарифмической осью x. Код, который я использую сейчас, является следующим:Лог оси x для гистограммы

plt.hist(data, bins=10**(np.linspace(0, 1, 2, 3), normed=1) 
plt.xscale('log') 

Однако ось x на самом деле не построена правильно! Это всего лишь от 1 до 100. В идеале я хотел бы иметь отметки на 1, 10, 100 и 1000. Любые идеи?

+0

Просьба предоставить образец данных. – figurine

+0

мои данные были списком количества облучения - позвольте мне найти список. данные = [13.140,17.520,15.768,10.512,10.512,9.636,10.512, 9.636,11.388,7.884,7.008,7.008,9.636,11.388,7.884,7.88,16.644,42.924,17.520] – student1818

ответ

4

Следующие работы.

import matplotlib.pyplot as plt 
import numpy as np 

data = [1.2, 14, 150 ] 
bins = 10**(np.arange(0,4)) 
print "bins: ", bins 
plt.xscale('log') 
plt.hist(data,bins=bins) 


plt.show() 

В вашем коде задан массив bins. Он имеет только два значения: [1, 10], а если вам нужны отметки в 1,10,100,and 1000, вам необходимо указать эти цифры как bins.

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

  • Нет связанных вопросов^_^