У меня есть ряд наборов данных, для которых мне нужно создать линейный график. Я создал функцию, которая принимает df, содержащий данные, дату, обозначающую вертикальную линию для «Даты начала», и каталог, в котором можно сохранить созданный график.
У меня возникла проблема. Учитывая, что для линейного графика я не могу правильно добавить отметки для равномерного отображения и за пределами последней точки данных. Я также хочу, чтобы значения ytick округлялись до десятков.
Я пробовал это:
Используйте np.arange(), но это не сработало. Диапазон данных варьируется в зависимости от набора данных, и я не смог это понять.
Используйте условие, чтобы проверить, находится ли максимальное значение выше или ниже 1000, чтобы помочь с интервалами. распределение. Я не уверен, что это хороший подход, поскольку я предположил, что пороговым значением является 1000. Затем я установил nbins=7, чтобы посмотреть, как это выглядит. Я не могу понять, как сделать значение nbins динамическим, чтобы ячейки были равномерно распределены по оси Y.
У меня есть ряд наборов данных, для которых мне нужно создать линейный график. Я создал функцию, которая принимает df, содержащий данные, дату, обозначающую вертикальную линию для «Даты начала», и каталог, в котором можно сохранить созданный график. У меня возникла проблема. Учитывая, что для линейного графика я не могу правильно добавить отметки для равномерного отображения и за пределами последней точки данных. Я также хочу, чтобы значения ytick округлялись до десятков. Я пробовал это: [list] [*] Используйте np.arange(), но это не сработало. Диапазон данных варьируется в зависимости от набора данных, и я не смог это понять. [*]Используйте условие, чтобы проверить, находится ли максимальное значение выше или ниже 1000, чтобы помочь с интервалами. распределение. Я не уверен, что это хороший подход, поскольку я предположил, что пороговым значением является 1000. Затем я установил nbins=7, чтобы посмотреть, как это выглядит. Я не могу понять, как сделать значение nbins динамическим, чтобы ячейки были равномерно распределены по оси Y. [/list] Вот моя функция:< /p> [code]def build_multiple_line_graphs(df, inception_date, line_graph_path): """Builds line graphs for market data.""" os.makedirs(line_graph_path, exist_ok=True)
# here is where I tried np.arange with no success #ax.yaxis.set_major_locator(ticker.MultipleLocator(increment)) #ax.set_yticks(np.arange(0,df+1, increment)) #plt.yticks(np.arange(0,max(df)+increment, increment)) #start, end = ax.get_ylim() #stepsize = end/5 #ax.yaxis.set_ticks(np.arange(0, end+1, 100)) ax.set_ylim(ymin=0)
# set custom x-axis label every 5 years ax.xaxis.set_major_locator(mdates.YearLocator(5)) ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y')) plt.xticks(rotation=0, ha='center') ax.grid(axis='y', color='gray')