2011-12-29 1 views
2

Reportlab을 사용하여 PDF 보고서에 그래프를 작성하고 있습니다. 나는 Area Line Plot을 만들고 왜 내가 볼 수있는 결과물을 얻지 못하는지 이해할 수없는 시점에 갇혔다. 여기 Area Line 보고서 랩을 사용하는 Python의 플롯

나는 나의 출력 코드를 작성했다된다

def standardLinePlot(data, width=200, height=200): 

    d = Drawing(width, height) 
    lp = AreaLinePlot() 
    lp.data=data 
    lp.width, lp.height = width, height 
    lp.xValueAxis.valueMin = 0 
    lp.xValueAxis.valueMax =36 
    lp.xValueAxis.valueSteps = [0,6,12,18,24,30,36] 

    lp.yValueAxis.valueMin = 0 
    lp.yValueAxis.valueMax =100 

    lp.strokeColor=colors.black 
    lp.fillColor=colors.grey 

    lp.reversePlotOrder = False 

    lp.joinedLines=1 

    d.add(lp) 

    return d 

내가 얻고 출력은 다음과 같습니다

Area Line Plot

내 의도 된 출력은 회색 색상의 장소에 있어야한다는 것입니다 라인 플롯 아래 영역 인 붉은 색. 다른 문제는이 차트에 축 제목을 추가하는 방법입니다. 예를 들어, 내 X 축이 "월"이고 Y 축이 "% of NAV"입니다.

답변

1

라인의 색상을 정의하려면 라인에 액세스해야합니다. :) 따라서 lp.strokeColor = colors.grey 대신 lp.lines[0].strokeColor = colors.grey을 사용하십시오. 그 중 하나는 플롯 배경색으로 사용됩니다.

레이블에 관한 질문은 다소 까다 롭습니다 ... ScatterPlot에는 X 축과 Y 축의 레이블을 설정하는 기능이 포함되어 있지만 AreaLinePlot의 경우는 그렇지 않습니다. 물론 자주 사용하려는 경우 해당 기능을 복사하는 AreaLinePlot 클래스를 파생시킬 수 있습니다.

+0

질문을 수정 해 주셔서 감사합니다. – GulshanM

+0

리카르도 : 답변 해 주셔서 감사합니다! 선 색상과는 별도로 음영 배경 색상 (선 아래 영역을 나타내는 색상)을 변경하려고합니다. 빨간색을 다른 색상으로 바꾸려면 무엇을 권하겠습니까? 다시 한번 나를 도와 주신 여러분 께 감사드립니다. – GulshanM

+0

@GulshanM : 요점은 'AreaLinePlot'에 직접 속성을 설정하면 전역이 변경된다는 것입니다. 'lp.strokeColor = colors.black'는 검은 색 직사각형 테두리를 만들고, 축 영역을 닫고,'lp.fillColor = colors.grey'는 플롯을 전체 배경색으로 회색으로 사용하게합니다. 라인 * 및 그 아래의 영역 *의 색상을 수정하려면, 대답에서 지적한대로'lp.lines'를 사용하여 각 라인에 액세스해야합니다. 그 라인들에는'fillColor'가 없습니다 :'inFill' 속성이 * that * 라인에 대해 설정되면 floodfill 대신'strokeColor'가 사용됩니다. –

0

변경

lp = AreaLinePlot() 

lp = LinePlot() 

해당

lp.lines[0].strokeColor = colors.red 
lp.lines[0].inFill = True 

을 시도하지만, 채우기 색상은 선 색상과 동일합니다.

크레딧은 @Ricardo Cárdenes에 있습니다.