使用xslwriter在图中创build点

在这里输入图像说明

我可以使用Python中的xlsxwriter通过行属性生成graphics。 但是我需要把4个点(菱形)放在特定的值上。 任何人都可以build议我如何使用xlsxwriter线属性把钻石放在特定的值。

如果需要比我还可以发布代码。

 from openpyxl import load_workbook from xlsxwriter.workbook import Workbook import math def graph(headline,table_percentage,table_threashold): """Create Graph Chart""" wb = load_workbook(filename = 'sample.xlsx') worksheet_final = wb.get_sheet_by_name(name='test') workbook = Workbook('graphs.xlsx') worksheet = workbook.add_worksheet() heading =['test1','test2','test3','test4','test5'] worksheet.write_row('A1',heading) count =2 while(count < worksheet_final.get_highest_row()): data_x = worksheet_final.cell(row = count, column = 1).value data_y = worksheet_final.cell(row = count, column = 2).value data_s1 = worksheet_final.cell(row = count, column = 8).value data_d0 = worksheet_final.cell(row = count, column = 14).value data_d1 = worksheet_final.cell(row = count, column = 20).value worksheet.write(count,0,round(data_x,0)) worksheet.write(count,1,data_y) worksheet.write(count,2,data_s1) worksheet.write(count,3,data_d0) worksheet.write(count,4,data_d1) count = count + 1 # Create a new chart with properties object. chart = workbook.add_chart({'type': 'line'}) cellname = headline chart.set_title({'name':cellname}) chart.set_x_axis({'name':'CLK-D Time (ps)', 'name_font':{'size':14,'bold':True}, }) chart.set_y_axis({'name':'CLK-Q Time (ps)', 'name_font':{'size':14,'bold':True}, }) chart.set_size({'width': 720, 'height': 576}) # Add a series to the chart. chart.add_series({ 'categories' : '=Sheet1!$A$2:$A$503', 'values': '=Sheet1!$B$1:$B$503', 'name':'clk2q0_S', 'line':{'color':'blue'}, }) chart.add_series({ 'categories' : '=Sheet1!$A$2:$A$503', 'values': '=Sheet1!$C$1:$C$503', 'name':'clk2q1_S', 'line':{'color':'red'}}) chart.add_series({ 'categories' : '=Sheet1!$A$2:$A$503', 'values': '=Sheet1!$D$1:$D$503', 'name':'clk2q0_H', 'line':{'color':'blue'}}) chart.add_series({ 'categories' : '=Sheet1!$A$2:$A$503', 'values': '=Sheet1!$E$1:$E$503', 'name':'clk2q1_H', 'line':{'color':'red'}}) # Insert the chart into the worksheet. worksheet.insert_chart('K1', chart) workbook.close() if __name__ == '__main__': table_percentage = "5%" table_threashold = {} #Need to put dot on the below 4 value table_threashold ['setup_mt1'] = [5,210] table_threashold ['setup_mt0'] = [-105,140] table_threashold ['hold_mt0'] = [-39,143] table_threashold ['hold_mt1'] = [-41,96] headline = "sample_data" graph(headline,table_percentage,table_threashold) 

在XlsxWriter中 ,打开一个系列中的单个点标记是不可能的,但是可以使用标记closures一系列点标记。 要做到这一点,你需要使用点(见文档)系列选项,并closures你不想要的标记。

 from xlsxwriter.workbook import Workbook workbook = Workbook('chart_point.xlsx') worksheet = workbook.add_worksheet() chart = workbook.add_chart({'type': 'line'}) data = [ [1, 2, 3, 4, 5], [2, 4, 6, 8, 10], [3, 6, 9, 12, 15], ] # Write the data for the chart. worksheet.write_column('A1', data[0]) worksheet.write_column('B1', data[1]) worksheet.write_column('C1', data[2]) # Add a chart series with markers but turn some off. chart.add_series({ 'categories': '=Sheet1!$A$1:$A$5', 'values': '=Sheet1!$B$1:$B$5', 'marker': {'type': 'automatic'}, 'points': [ {'fill': {'none': True}, 'line': {'none': True}}, {'fill': {'none': True}, 'line': {'none': True}}, {'fill': {'none': True}, 'line': {'none': True}}, {'fill': {'none': True}, 'line': {'none': True}}, ], }) # Add a second chart series. chart.add_series({ 'categories': '=Sheet1!$A$1:$A$5', 'values': '=Sheet1!$C$1:$C$5', 'marker': {'type': 'automatic'}, 'points': [ {'fill': {'none': True}, 'line': {'none': True}}, {}, {'fill': {'none': True}, 'line': {'none': True}}, {'fill': {'none': True}, 'line': {'none': True}}, {'fill': {'none': True}, 'line': {'none': True}}, ], }) worksheet.insert_chart('E9', chart) workbook.close() 

在这里输入图像说明

这意味着您只能指示作为系列的一部分的标记,即,XlsxWriter中没有设施将点添加到不属于系列的一部分的图表。