Построение нескольких гистограмм на одном графике с разными значениями оси X - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь получить данные за несколько лет (например, за 2005-2007 гг.) Из базы данных, содержащей значения в формате с плавающей запятой.

2005 значений (отсортировано): [0.512, 0.768, 1, 1.5..., 100]

2006 значения (отсортировано): [0.288, 0.512..., 300, 350] и т. Д.

Я хочу сгенерировать график CDF (используя функцию ax.hist ()), который позволяет мне каждый год строить на одном графике.Мой текущий код выглядит так:

num_bins = 100
fig, ax = plt.subplots(figsize=(8, 4))
years = ['2005', '2006', '2007']

for year in years:
    df = pd.read_sql_query(query, conn) #sorted
    n, bins, patches = ax.hist(df.values, num_bins, normed = 1, histtype='step', cumulative=True, label=str(year))

ax.grid(True)
ax.legend(loc='right')
ax.set_xlabel('Values')
ax.set_ylabel('CDF plot')
plt.show()

Тем не менее, это дает мне один график с несколькими гистограммами CDF, но с изменяющейся осью X (не отсортировано).Мои значения по оси X: 0.512, 0.768, 1, 1.5..., 100, 0.288, ..., 300, 350.Он добавляет вновь найденные значения во втором году к значениям оси X первого года вместо повторного построения с использованием той же шкалы.

Как я могу гарантировать, что все графики CDF генерируются для общего и динамически изменяющегосямасштаб (конечный результат), такой как: 0.288, 0.512, 0.768, 1, 1.5..., 100..., 300, 350.

1 Ответ

0 голосов
/ 15 октября 2018

Я обнаружил проблему:

 df = pd.read_sql_query(query, conn) #sorted

Это возвращало мне фрейм данных с df.values в виде массива отсортированных строк, а не чисел.После форматирования в числа, графики сгенерированы правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...