使用openpyxl模块的Python绘图无法正确绘制日期

时间:2019-04-19 01:08:33

标签: python openpyxl

我正在尝试使用Python中的openpyxl模块进行一些绘制。这是它从中提取信息的数据集:

Date(x)     Int(y)
2019-01-07  1
2019-01-09  2
2019-01-11  3
2019-01-14  4
2019-01-16  5
2019-01-18  6
2019-01-23  7
2019-01-25  8
2019-01-30  9
2019-02-01  10
2019-02-04  11
2019-02-08  12
2019-02-13  13
2019-02-15  14
2019-02-20  15
2019-02-22  16
2019-02-25  17
2019-02-27  18
2019-03-01  19
2019-03-20  20
2019-03-22  21
2019-03-25  22
2019-03-27  23
2019-04-01  24
2019-04-03  25
2019-04-05  26
2019-04-08  27
2019-04-10  28
2019-04-12  29

这是我用来形成图形的代码:

chart = ScatterChart()
chart.title = "Testing graph"
chart.style = 12
chart.x_axis.title = 'Date(x)'
chart.y_axis.title = "Int(y)"

#Get x values for graph from the first DATE column
x_values = Reference(ws, min_col=1, max_col=1, min_row=1, max_row=27)

#Get y values for graph from the second INT column
y_values = Reference(ws, min_col=2, max_col=2, min_row=1, max_row=27)

series = Series(y_values, x_values, title="Int Number")
chart.series.append(series)

该图产生正确的结果,但是X轴不符合预期。我希望每个日期都在X轴上有一个数据点。因此,这里大约有30行,因此我希望X轴上大约有30个点,这些点直接对应于Y坐标,该坐标是该DATE的INT值。

这是正在发生的事的一个例子。 (这是一个不同的数据集,因此请不要太在意,以免INT值呈线性比例缩放。尽管如此,它还是可以准确显示问题。)

enter image description here

正如您所看到的,X轴上的第一个点(2019-01-07)实际上已发布到该图上。甚至有一个标记显示出来。 (我通过更改图形类型在excel中自己添加了标记,不确定如何使用openpyxl进行标记)

但是,我希望图形上的每个点都直接对应于X轴上的一个点。我该如何使用openpyxl模块或其他解决方案来做到这一点?

0 个答案:

没有答案