2013-11-13 3 views
1

У меня есть данные (спектр), которые я хочу построить в виде гистограммы. Я импортирую данные, и spectrum.shape показывает мне (1024,) как формат, однако plt.hist не строит данные правильно. Если я использую plt.bar(...), он работает просто отлично, но по эстетическим соображениям (я хочу использовать «поэтапную» схему гистограммы), и я должен использовать plt.hist, который предлагает эту опцию. Я действительно не знаю, что делать. Вот мой код:matplotlib: график гистограммы по данным

import matplotlib.pyplot as plt 
import numpy as np 

spectrum = np.loadtxt('3000.mp', skiprows=53) 

y1=spectrum[:] 
num_bins = 1024 
diagram = plt.hist(y1, num_bins, alpha=0.5) 
plt.xlabel("TOF/$\mu$s") 
plt.ylabel("# ions") 
plt.show() 

Я надеюсь на вашу помощь.

+4

Извините, если я неверно истолковал, но я думаю, вам нужно прочитать, что будет делать гистограмма для вас. Похоже, что у вас уже есть счетчики в данных, которые вы читаете (я делаю это предположение, исходя из того, что вы говорите, что количество образцов равно 1024, а затем вы определяете 1024 ячейки). Вероятно, поэтому бар работает, а гистограмма - нет. – dabillox

+0

Вам просто нужно использовать правильные аргументы стиля для 'bar' или посмотреть, как' hist' выполняет построение 'stepfilled': https://github.com/tacaswell/matplotlib/blob/master/lib/matplotlib/axes /_axes.py#L5340 или используйте 'step' +' fill_between' – tacaswell

+0

привет спасибо за ваш ответ. я сейчас использую бар, и это тоже выглядит неплохо;) –

ответ

0

Я также заинтересован в этом ответе. Не могли бы вы поделиться, как вы получили поэтапный дизайн с барами?

Myself Я ищу что-то вроде этого:

enter image description here

(это изображение происходит от http://astroplotlib.stsci.edu/page_histograms.htm)

Но я не удается создать его легко со спектром в качестве входных данных.

+0

В идеале вы должны задать это как отдельный вопрос, а не ответ. Однако функция matplotlib, которую вы ищете, называется 'step'. http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.step http://matplotlib.org/examples/pylab_examples/step_demo.html –

+0

В итоге я не использовал команду stepfilled на plt.bar, но просто заполнил так как я не получил его на работу ... –

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