【发布时间】:2013-06-17 10:35:45
【问题描述】:
我决定使用 XlsxWriter 为许多国家/地区制作通用输出产品。虽然我对模块的灵活性印象深刻,但我似乎无法弄清楚如何适当地修改图表中的标签。 'text_wrap' 功能似乎不包含在'set_x_axis' 中,这会导致非常长的标签旋转 45 度。如下所示,我试图让它发生(只是看看会发生什么),并且该语句被忽略。
"""Allow for text wrap for x_axis labels (doesn't seem to do anything)"""
chart_list[2].set_x_axis({'text_wrap':True})
结果是图表区域在外部边界处保持指定尺寸,但绘图区域本身由标签长度控制。有谁知道如何做到这一点?现在,我唯一(低于标准的)解决方案是减小字体大小并使用缩写。这带来了清晰度的损失,并且没有解释性文字的空间。
更新:我包含一个代码块来按要求演示标签的长度。 (抱歉耽搁了,我最后被淹没了,不得不把它放下。)你可以看到所需标签的长度。他们最终出现对角线并挤压图表区域。我还不能测试你的修复,但我确实觉得我需要回复你,详细说明我的意思。我希望包装这些标签而不是对角线(我通常将其描述为标签方向)。谢谢参观! (是的,标签不正确。我的意思是类别标签...)
"""Chart III - Macro-Level Comparisons in Euros >>>
(GDP per capita,Average Gross Annual Salary, Government Expenditure per capita) translates to ...
Index(Per Capita GDP (Euros), Average gross annual salary (Euros), Public Expenditure Per Capita (€))
DATA: All must be written to new sheet from outdset_build(country)
"""
#Create list of relevant figures (have to use lev distance because the euro symbol causes match problems)
chart3_figures=['Per Capita GDP (Euros)', 'Average gross annual salary (Euros)', 'Public Expenditure Per Capita (€)']
c3_figs=[]
for i in range(len(chart3_figures)):
figs=process.extract(chart3_figures[i],outdset_build(country).index.get_level_values('figure'),limit=1)[0]
c3_figs.append(figs[0])
#Generate subindex to subset data
chart3_index=outdset_build(country).index.get_level_values('figure').isin(c3_figs)
#Subset data
chart3_data=outdset_build(country)[chart3_index]
#Create new sheet
temp_data=jagx.add_worksheet('misc_data')
#Write data to new sheet
temp_data.write_row('A1',['index','EU','EU-10','CROATIA'])
temp_data.write_column('A2', ['Per Capita GDP','Average Gross Annual Salary', \
'Public Expenditure Per Capita'])
temp_data.write_column('B2',chart3_data['EU'])
temp_data.write_column('C2',chart3_data['EU-10'])
temp_data.write_column('D2',chart3_data[country])
#Configure series
chart_list[2].add_series({
'name':'EU',
'categories':'misc_data!A2:A4',
'values':'misc_data!B2:B4'
})
chart_list[2].add_series({
'name':'EU-10',
'categories':'misc_data!A2:A4',
'values':'misc_data!C2:C4'
})
chart_list[2].add_series({
'name':'CROATIA',
'categories':'misc_data!A2:A4',
'values':'misc_data!D2:D4'
})
#Add title
chart_list[2].set_title({'name':'Macro-level Comparison in Euros (per capita)','name_font':{'size':9}})
【问题讨论】:
标签: python xlsxwriter