我正在寻找一种使用Python包openpyxl的方法来更改我的水平轴(x轴)在Excel图表上沿着y轴的位置.目前,我的所有数据都是负的,因此轴显示在图表区域的顶部.我想将水平轴与Y轴交叉的位置更改为-9999的值,以迫使其位于图表区域的底部.谢谢!

Sample code:

import random
import openpyxl
from openpyxl.chart import ScatterChart, Reference, Series

wb = openpyxl.Workbook()
ws = wb.active
for r,val in enumerate([1,2,3,4,5,6,7,8,9,10]):
    ws.cell(row=r+1, column=1, value=val)
    ws.cell(row=r+1, column=2, value=-1*random.random()*val)

chart1 = ScatterChart()
xvalues1 = Reference(ws, min_col=1, min_row=1, max_row=10)
yvalues1 = Reference(ws, min_col=2, min_row=1, max_row=10)
series1 = Series(values = yvalues1, xvalues = xvalues1)
chart1.series.append(series1)
ws.add_chart(chart1, "B11")
wb.save('test.xlsx')

Graph showing current behavior:

Problematic chart showing X-axis at zero

Settings I'd like to change with openpyxl:

Settings I'd like to change from Excel GUI

Intended appearance of X-axis with chart:

Graph shown the way I'd like with X-axis at bottom

推荐答案

您可以使用chart1.x_axis.tickLblPos = "low"强制更改x轴位置.我已经测试过并工作过.希望能帮到你

对于更改y轴,您可以使用.

chart1.y_axis.crosses = "min"
chart1.y_axis.min = -9999  

所以您的最终代码将是

import random
import openpyxl
from openpyxl.chart import ScatterChart, Reference, Series

wb = openpyxl.Workbook()
ws = wb.active

for r, val in enumerate([1,2,3,4,5,6,7,8,9,10]):
    ws.cell(row=r+1, column=1, value=val)
    ws.cell(row=r+1, column=2, value=-1*random.random()*val)

chart1 = ScatterChart()
xvalues1 = Reference(ws, min_col=1, min_row=1, max_row=10)
yvalues1 = Reference(ws, min_col=2, min_row=1, max_row=10)
series1 = Series(values=yvalues1, xvalues=xvalues1)
chart1.series.append(series1)

chart_location = "B11"
ws.add_chart(chart1, chart_location)

chart1.y_axis.crosses = "min"
chart1.y_axis.min = -9999  
chart1.x_axis.tickLblPos = "low"
wb.save('test.xlsx')

Python相关问答推荐

如何使用没有Selenium的Python在百思买着陆页面上处理国家/地区 Select ?

跟踪我已从数组中 Select 的样本的最有效方法

如何在Python中使用io.BytesIO写入现有缓冲区?

多处理代码在while循环中不工作

如何在箱形图中添加绘制线的传奇?

沿着数组中的轴计算真实条目

Pandas 都是(),但有一个门槛

两个pandas的平均值按元素的结果串接元素.为什么?

如何将一个动态分配的C数组转换为Numpy数组,并在C扩展模块中返回给Python

如果值发生变化,则列上的极性累积和

创建可序列化数据模型的最佳方法

未知依赖项pin—1阻止conda安装""

Plotly Dash Creating Interactive Graph下拉列表

从Windows Python脚本在WSL上运行Linux应用程序

Python—转换日期:价目表到新行

我对这个简单的异步者的例子有什么错误的理解吗?

在numpy数组中寻找楼梯状 struct

ModuleNotFoundError:Python中没有名为google的模块''

Python如何导入类的实例

用由数据帧的相应元素形成的列表的函数来替换列的行中的值