使用 pygal 生成绘图时如何设置图表中 x 轴上日期之间的间距?

How to set spacing between dates on x-axis in a graph when using pygal for plot generation?

我目前正在使用 pygal 生成图形,但我对 x 轴上的日期有疑问,因为它们的数量在增加并且它们开始重叠。我想在日期之间提供间距或每周将日期放在那里。

如果有人能提供帮助,那将是非常可观的。 谢谢。

您可以:

1) 为 x_label_rotation 参数设置值以顺时针旋转日期。
2) 获取 x-axis 中的每 N 个日期,其中 N 可以调整。你应该设置 show_minor_x_labels=False.

例如:

import random
import pygal
chart = pygal.Line(x_label_rotation=20)
date_list = [datetime(2017, 1, 30, 0, 0, n) for n in range(0, 60)]
values_list = [random.randint(5, 20) for n in range(0, 60)]
chart.x_labels = date_list
chart.add('line', values_list)
chart.render_to_file('your_path_to_file') #f.e /Users/{user_name}/Documents/chart.svg

之后我们得到重叠的日期:

接下来,考虑修改后的代码片段:

import random
import pygal
chart = pygal.Line(x_label_rotation=20, show_minor_x_labels=False)
date_list = [datetime(2017, 1, 30, 0, 0, n) for n in range(0, 60)]
values_list = [random.randint(5, 20) for n in range(0, 60)]
chart.x_labels = date_list
N = 5 # we will plot only every 5 date from date_list
chart.x_labels_major = date_list[::N]
chart.add('line', values_list)
chart.render_to_file('your_path_to_file') #f.e /Users/{user_name}/Documents/chart.svg

在那之后我们没有得到重叠的日期: