Итак, у меня есть некоторые данные, которые я хочу построить по гистограмме плотности плотности (неравной ширины класса), и через некоторые поисковые запросы в Интернете я создал это, чтобы позволить мне делать это.Несколько сломанной оси на гистограмме в Matplotlib
import numpy as np
import matplotlib.pyplot as plt
plt.xkcd()
freqs = np.array([3221, 1890, 866, 529, 434, 494, 382, 92, 32, 7, 7])
bins = np.array([0, 5, 10, 15, 20, 30, 50, 100, 200, 500, 1000, 1500])
widths = bins[1:] - bins[:-1]
heights = freqs.astype(np.float)/widths
plt.xlabel('Cost in Pounds')
plt.ylabel('Frequency Density')
plt.fill_between(bins.repeat(2)[1:-1], heights.repeat(2), facecolor='steelblue')
plt.show()
Как вы можете видеть, однако, эти данные простираются на тысячи на оси х и по оси у (плотность) идет от крошечных данных (< 1) до обширных данных (> 100). Чтобы решить эту проблему, мне нужно сломать обе оси. Наиболее близким к тому, что я нашел до сих пор, является this, который я нашел трудным в использовании. Сможете ли вы помочь?
Спасибо, Aj.
Спасибо! Однако часть того, что я пытаюсь сделать, представляет собой неравную ширину класса, представляя частоту по области. Для этого мне нужно показать ширину сюжета. Спасибо за помощь до сих пор. – user3033981
@ user3033981 ahh, нормально. Я думаю, что логарифмическая шкала в обоих направлениях тоже не поможет. Было бы трудно увидеть относительную ширину в масштабе шкалы. Вы также можете установить ширину каждого бара отдельно в этом примере, но такая же проблема возникает, поскольку ширина должна быть уменьшена, чтобы иметь смысл. – M4rtini