2013-06-17 2 views
2

XlsxWriter를 사용하여 많은 국가에서 일반적인 출력 제품을 생산하기로 결정했습니다. 모듈 유연성에 깊은 인상을 받았지만 차트에서 라벨을 적절하게 수정하는 방법을 찾지 못했습니다. 'text_wrap'기능이 'set_x_axis'에 포함되지 않은 것으로 나타나 매우 긴 라벨이 45도 회전합니다. 아래에서 볼 수 있듯이, 나는 어쨌든 일어날 수 있도록 노력했다. (무슨 일이 일어날지를보기 위해) 진술은 무시된다.XlsxWriter 모듈 (Python)을 사용하여 차트 레이블 방향 수정

"""Allow for text wrap for x_axis labels (doesn't seem to do anything)""" 
chart_list[2].set_x_axis({'text_wrap':True}) 

결과는 외부 경계에서 지정된 크기로 유지하는 차트 영역이지만, 그림 영역 자체 라벨 길이에 의해 지배된다. 누구든지이 작업을 수행하는 방법에 대한 아이디어가 있습니까? 지금, 내 유일한 (subpar) 솔루션은 글꼴 크기를 줄이고 약어를 사용하는 것입니다. 이것은 명확성을 잃어 버리게하고 설명을위한 여지는 없습니다.

업데이트 : 요청한대로 레이블의 길이를 보여주기 위해 코드 블록을 포함합니다. (늦어서 미안해, 나는 끝장이났다. 내려 놓아야했다.) 원하는 라벨의 길이를 볼 수있다. 그들은 대각선으로 나오고 차트 영역을 스 퀴징합니다. 나는 아직 당신의 고침을 시험 할 수 없었지만, 나는 내가 의미했던 것에 대해 더 구체적으로 당신에게 돌아갈 필요가 있다고 느꼈다. 그 레이블을 대각선 대신에 감싸는 것으로하고 싶습니다. (일반적으로 레이블 방향으로 설명했습니다). 봐 주셔서 감사합니다! (그리고 네, 라벨이 잘못되었습니다. 카테고리 라벨을 의미했습니다 ...)

"""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}}) 

답변

2

작은 것을 분명히 할 수 있습니까? 제목은 라벨 방향에 대해 이야기하지만 몸은 텍스트 줄 바꿈에 대해 이야기합니다. 또한, 나는 당신이 라벨로 무엇을 의미하는지 분명하지 않다. Excel 차트에서 레이블은 데이터 요소와 연관됩니다. 코드에서 축 제목 (Excel 이름)을 감싸는 것처럼 보입니다.

불쾌감을 주셔서 죄송합니다. 문제가 무엇인지 분명히 밝힙니다. 필요하다면 기꺼이 고칠 수 있습니다. 어쩌면 작은 예제로 게시물을 업데이트 할 수 있습니다.

GitHub 헤드에 축 번호 글꼴 및 축 제목 글꼴 방향이 지원되지만 아직 PyPI에는 없습니다. 그러나 축 제목의 자동 텍스트 배치는 Excel에서 XlsxWriter (또는 afaik)에서 지원하지 않습니다.

업데이트 : 차트 축 글꼴 방향은 PyPI에 XlsxWriter 버전 0.3.4에 지금 :

chart.set_x_axis({'num_font': {'rotation': 45}})