我正在尝试使用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值呈线性比例缩放。尽管如此,它还是可以准确显示问题。)
正如您所看到的,X轴上的第一个点(2019-01-07)实际上已发布到该图上。甚至有一个标记显示出来。 (我通过更改图形类型在excel中自己添加了标记,不确定如何使用openpyxl进行标记)
但是,我希望图形上的每个点都直接对应于X轴上的一个点。我该如何使用openpyxl模块或其他解决方案来做到这一点?