0

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

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

4

1 回答 1

5

你可以:

1) 设置 x_label_rotation 参数的值以顺时针旋转日期。
2) 获取 x 轴上的每个 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

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

在此处输入图像描述

于 2017-01-30T06:26:46.680 回答