У меня есть данные (спектр), которые я хочу построить в виде гистограммы. Я импортирую данные, и 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()
Я надеюсь на вашу помощь.
Извините, если я неверно истолковал, но я думаю, вам нужно прочитать, что будет делать гистограмма для вас. Похоже, что у вас уже есть счетчики в данных, которые вы читаете (я делаю это предположение, исходя из того, что вы говорите, что количество образцов равно 1024, а затем вы определяете 1024 ячейки). Вероятно, поэтому бар работает, а гистограмма - нет. – dabillox
Вам просто нужно использовать правильные аргументы стиля для 'bar' или посмотреть, как' hist' выполняет построение 'stepfilled': https://github.com/tacaswell/matplotlib/blob/master/lib/matplotlib/axes /_axes.py#L5340 или используйте 'step' +' fill_between' – tacaswell
привет спасибо за ваш ответ. я сейчас использую бар, и это тоже выглядит неплохо;) –