是否可以使用openpyxl更改图形x和y轴主/次单位?

时间:2018-02-28 15:05:58

标签: openpyxl

我尝试了以下但没有工作。

chart.auto_axis = False

chart.x_axis.unit = 365

chart.set_y_axis({'minor_unit': 100, 'major_unit':365})

更改两个轴的最大和最小刻度是直接的

chart.x_axis.scaling.min = 0

chart.x_axis.scaling.max = 2190

chart.y_axis.scaling.min = 0

chart.y_axis.scaling.max = 2 

所以我希望有一个直接的解决方案。这是一个mcve。

from openpyxl import load_workbook, Workbook
import datetime
from openpyxl.chart import ScatterChart, Reference, Series

wb = Workbook()
ws = wb.active

rows = [
['data point 1', 'data point2'],
[25, 1],
[100, 2],
[500, 3],
[800, 4],
[1200, 5],
[2100, 6],]

for row in rows:
    ws.append(row)

chart = ScatterChart()
chart.title = "Example Chart"
chart.style = 18
chart.y_axis.title = 'y'
chart.x_axis.title = 'x'
chart.x_axis.scaling.min = 0
chart.y_axis.scaling.min = 0
chart.X_axis.scaling.max = 2190
chart.y_axis.scaling.max = 6

xvalues = Reference(ws, min_col=1, min_row=2, max_row=7)
yvalues = Reference(ws, min_col=2, min_row=2, max_row=7)
series = Series(values=yvalues, xvalues=xvalues, title="DP 1")
chart.series.append(series)

ws.add_chart(chart, "D2")

wb.save("chart.xlsx")

我需要自动将轴更改为365或以下的单位。

1 个答案:

答案 0 :(得分:1)

答案很晚,但是我发现这个问题后就想出了办法。

您需要将主轴的主要轴设置为365.25,并且格式只能显示年份:

chart.x_axis.number_format = 'yyyy'
chart.x_axis.majorUnit = 365.25