Сглаживание кривой на линейном графике - интервал значений по оси x - PullRequest
1 голос
/ 29 апреля 2020

Я пытаюсь воссоздать следующий график:

source_plot

С помощью онлайн-инструмента я могу создать набор данных (135 точек данных), который я сохраненный в CSV-файле со следующей структурой:

Year,Number of titles available
1959,1.57480315
1959,1.57480315
1959,1.57480315
...
1971,221.4273356
1971,215.2494175
1971,211.5426666

Я создал Python файл со следующим кодом:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('file.csv')

df.plot.line(x='Year', y='Number of titles available')

plt.show()

, и я получаю следующий график:

wrong_plot

  1. Что я могу сделать, чтобы получить плавную линию, как на исходном графике?
  2. Как я могу получить то же самое значения по оси х, как на исходном графике?

РЕДАКТИРОВАТЬ: я работал с набором данных и правильно форматировал даты, график теперь лучше. Вот как выглядит теперь набор данных:

Date,Number of available titles
1958/07/31,2.908816952
1958/09/16,3.085527674
1958/11/02,4.322502727
1958/12/19,5.382767059
...
1971/04/13,221.6766907
1971/05/30,215.4918154
1971/06/26,211.7808903

Это график, который я могу получить с тем же кодом, приведенным выше:

good_plot

Теперь возникает вопрос: как я могу иметь тот же диапазон дат, что и на оригинальном сюжете (1958 - середина 1971 г.)?

1 Ответ

1 голос
/ 29 апреля 2020

Попробуйте взять среднее значение ваших значений, сгруппированных по годам. Это сгладит разрывы, которые вы получаете каждый год, до среднего значения. Если это не помогает, тогда вы должны применить любой из многочисленных фильтров.

df.groupby('year').mean().plot(kind='line')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...