我使用xlsxwriter生成excel表格,特别是折线图,否则我会得到很好的结果。你知道吗
我想在同一个折线图中添加一条垂直线作为参考标记。你知道吗
以下是在excel中实现的两个示例:
https://peltiertech.com/Excel/Charts/AddLineVertSeries.html
我不是在研究日期,但这些例子在其他方面基本上是相同的。你知道吗
在最理想的情况下,我希望它的行为如下:
在这些示例中,似乎正在做的是,仅用于序列的图表类型被修改为xy散点类型,其子类型为line,没有标记。你知道吗
不幸的是,在xlsxwriter中,图表类型似乎只能按图表设置,而不能按系列设置(如示例所示)
我已经探索了实现这一点的其他方法(例如使用.combine()
组合两个图表),但是遇到了X轴被不正确引用的问题。你知道吗
我也知道y2èu轴是有用的,但在这两者之间,我还没有找到一个有效的组合。你知道吗
任何帮助都将不胜感激。我对xlsxwriter的推荐再多不过了——它对我用它做的每件事都非常好,而且我认识到,即使在excel本身中,这也是一件不寻常的事情。你知道吗
下面是我正在运行的代码的一个例子,它产生了一些非常接近我需要的东西。例外情况是,在单元格D16中,当我真的希望能够引用X轴时,我使用的值是“600”(因此,通过使用大约0.0735而不是600来获得相同的结果)。坦率地说,我不知道为什么600是什么需要使线出现在那里。你知道吗
除此之外,我希望去掉图例中对“vlines”的引用,理想情况下,在该行的顶部有一个“data label”。你知道吗
y-缩放不是必要的,但我认为这一部分实际上很容易实现。你知道吗
#!/bin/python3
import xlsxwriter
import os #lets us execute shell commands in windows (to open the created excel document)
workbook = xlsxwriter.Workbook("test.xlsx")
interval=14.7
bins=12
wk_data =workbook.add_worksheet("Raw Data")
wk_chart =workbook.add_worksheet("Chart")
wk_data.write(0, 0, "Bin")
wk_data.write(0, 1, "Int")
wk_data.write(0, 2, "Sample")
wk_data.write(0, 2, "Thing1")
wk_data.write(0, 3, "Thing2")
wk_data.write(1, 2, 2)
wk_data.write(2, 2, 35)
wk_data.write(3, 2, 486)
wk_data.write(4, 2, 36)
wk_data.write(5, 2, 3)
wk_data.write(6, 2, 2)
wk_data.write(7, 2, 3)
wk_data.write(8, 2, 47)
wk_data.write(9, 2, 237)
wk_data.write(10, 2, 50)
wk_data.write(11, 2, 13)
wk_data.write(12, 2, 2)
wk_data.write(1, 3, 2)
wk_data.write(2, 3, 5)
wk_data.write(3, 3, 3)
wk_data.write(4, 3, 6)
wk_data.write(5, 3, 35)
wk_data.write(6, 3, 89)
wk_data.write(7, 3, 523)
wk_data.write(8, 3, 90)
wk_data.write(9, 3, 23)
wk_data.write(10, 3, 4)
wk_data.write(11, 3, 2)
wk_data.write(12, 3, 4)
wk_data.write(14, 2, 6)
wk_data.write(15, 2, 6)
wk_data.write(14, 3, 0)
wk_data.write(15, 3, 600)
for bin in range(0,bins):
wk_data.write(bin+1, 0, bin) #Column with raw bin number
wk_data.write(bin+1, 1, interval * bin / 1000) #Column with the x-values we are interested in
data_chart = workbook.add_chart({'type': 'line'})
vline_chart = workbook.add_chart({'type': 'scatter', 'subtype': 'straight'})
data_chart.add_series({
'name': "thing1",
'categories': ['Raw Data', 1, 1, 12, 1],
'values': ['Raw Data', 1, 2, 12, 2],
'line': {
'width': 0.25,
},
})
data_chart.add_series({
'name': "thing2",
'categories': ['Raw Data', 1, 1, 12, 1],
'values': ['Raw Data', 1, 3, 12, 3],
'line': {
'width': 0.25,
},
})
vline_chart.add_series({
'name': "vlines",
'categories': ['Raw Data', 14, 2, 15, 2],
'values': ['Raw Data', 14, 3, 15, 3],
'line': {
'width': 4,
}
})
data_chart.combine(vline_chart)
data_chart.set_title ({'name': 'Turtles'})
data_chart.set_y_axis({'name': 'Count'})
data_chart.set_x_axis({'name': 'interval'})
data_chart.set_size({ 'width': 1500, 'height': 800})
wk_chart.insert_chart('A1', data_chart, {'x_offset': 0, 'y_offset': 0})
workbook.close()
os.system('"test.xlsx"')
要将垂直参考线作为散点添加到辅助轴上的图表中,您只需要对发布的代码做一点小的更改,这是我在对不同文档页面进行大量研究后发现的。你知道吗
您需要对发布的代码进行的相关更改是将
'y2_axis': True
参数添加到vline_chart.add_series
定义中,如下所示:文档here中讨论了对
y2_axis
参数以及一些example代码的需要相关问题 更多 >
编程相关推荐