在 xlsx 编写器中通过散点图绘制线
Plotting line through scatter plot in xlsx writer
这是一个散点图:
我想做的只是添加一条线通过点 -.8(y 轴)到 .4(x 轴),它穿过槽(0,0),但这就是我最终得到的得到:
这是我的代码:
diagonal = workbook.add_chart({'type':'line'})
###for line
worksheet.write(0,0,-.8)
worksheet.write(1,0,.4)
###net and gain are just excel columns (for scatterplot)
diagonal.add_series({'values':['sheet',0,0,1,0],'categories':net)
scatter = workbook.add_chart({'type':'scatter'})
scatter.add_series({'values':gain,'categories':net)
diagonal.combine(scatter)
worksheet.insert_chart(1,1,diagonal)
如果在 Excel 中组合折线图和散点图,您可能会得到相同的结果。 Excel 中的 "line" 图表有点令人困惑,它基于固定的划分类别。您可能需要为该行绘制第二个 "scatter" 系列。
像这样:
import xlsxwriter
workbook = xlsxwriter.Workbook('chart_scatter.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': 1})
# Add the worksheet data that the charts will refer to.
worksheet.write_column('A1', [-0.2, 0.3, -0.4, 0.15, -0.6, 0.37])
worksheet.write_column('B1', [0.1, -0.4, -0.5, -0.25, 0.1, -0.51])
worksheet.write_column('C1', [-0.8, 0.4])
worksheet.write_column('D1', [ 0, 0])
# Create a new scatter chart.
chart = workbook.add_chart({'type': 'scatter'})
# Add the scatter data.
chart.add_series({
'categories': ['Sheet1', 0, 0, 5, 0],
'values': ['Sheet1', 0, 1, 5, 1],
'marker': {
'type': 'circle',
'border': {'color': 'red'},
'fill': {'color': 'red'},
},
})
# Add the straight lines series.
chart.add_series({
'categories': ['Sheet1', 0, 2, 1, 2],
'values': ['Sheet1', 0, 3, 1, 3],
'line': {'color': 'blue'},
'marker': {'type': 'none'},
})
# Format the chart.
chart.set_x_axis({'min': -0.8, 'max': 0.4})
chart.set_legend({'none': True})
worksheet.insert_chart('D5', chart)
workbook.close()
输出:
这里的关键是先弄清楚你想在 Excel 中做什么,然后尝试将其应用到 XlsxWriter 程序。
这是一个散点图:
我想做的只是添加一条线通过点 -.8(y 轴)到 .4(x 轴),它穿过槽(0,0),但这就是我最终得到的得到:
这是我的代码:
diagonal = workbook.add_chart({'type':'line'})
###for line
worksheet.write(0,0,-.8)
worksheet.write(1,0,.4)
###net and gain are just excel columns (for scatterplot)
diagonal.add_series({'values':['sheet',0,0,1,0],'categories':net)
scatter = workbook.add_chart({'type':'scatter'})
scatter.add_series({'values':gain,'categories':net)
diagonal.combine(scatter)
worksheet.insert_chart(1,1,diagonal)
如果在 Excel 中组合折线图和散点图,您可能会得到相同的结果。 Excel 中的 "line" 图表有点令人困惑,它基于固定的划分类别。您可能需要为该行绘制第二个 "scatter" 系列。
像这样:
import xlsxwriter
workbook = xlsxwriter.Workbook('chart_scatter.xlsx')
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': 1})
# Add the worksheet data that the charts will refer to.
worksheet.write_column('A1', [-0.2, 0.3, -0.4, 0.15, -0.6, 0.37])
worksheet.write_column('B1', [0.1, -0.4, -0.5, -0.25, 0.1, -0.51])
worksheet.write_column('C1', [-0.8, 0.4])
worksheet.write_column('D1', [ 0, 0])
# Create a new scatter chart.
chart = workbook.add_chart({'type': 'scatter'})
# Add the scatter data.
chart.add_series({
'categories': ['Sheet1', 0, 0, 5, 0],
'values': ['Sheet1', 0, 1, 5, 1],
'marker': {
'type': 'circle',
'border': {'color': 'red'},
'fill': {'color': 'red'},
},
})
# Add the straight lines series.
chart.add_series({
'categories': ['Sheet1', 0, 2, 1, 2],
'values': ['Sheet1', 0, 3, 1, 3],
'line': {'color': 'blue'},
'marker': {'type': 'none'},
})
# Format the chart.
chart.set_x_axis({'min': -0.8, 'max': 0.4})
chart.set_legend({'none': True})
worksheet.insert_chart('D5', chart)
workbook.close()
输出:
这里的关键是先弄清楚你想在 Excel 中做什么,然后尝试将其应用到 XlsxWriter 程序。