Python:使用pycha快速繪製辦公常用圖二(使用樣式定製個人化圖表)

來源:互聯網
上載者:User

  在昨天的文章《Python:使用pycha快速繪製辦公常用圖(餅圖、垂直長條圖、水平長條圖、散佈圖等七種圖形)》中,講述了使用pycha繪製各種辦圖常見圖,今天學習了下如何定製這些圖表的樣式,在pycha模組的源碼中,char.py檔案中定義了預設的樣式格式,如下:

DEFAULT_OPTIONS = Option(    axis=Option(        lineWidth=1.0,        lineColor='#0f0000',        tickSize=3.0,        labelColor='#666666',        labelFont='Tahoma',        labelFontSize=9,        labelWidth=50.0,        tickFont='Tahoma',        tickFontSize=9,        x=Option(            hide=False,            ticks=None,            tickCount=10,            tickPrecision=1,            range=None,            rotate=None,            label=None,            interval=0,            showLines=False,        ),        y=Option(            hide=False,            ticks=None,            tickCount=10,            tickPrecision=1,            range=None,            rotate=None,            label=None,            interval=0,            showLines=True,        ),    ),    background=Option(        hide=False,        baseColor=None,        chartColor='#f5f5f5',        lineColor='#ffffff',        lineWidth=1.5,    ),    legend=Option(        opacity=0.8,        borderColor='#000000',        borderWidth=2,        hide=False,        position=Option(top=20, left=40, bottom=None, right=None),    ),    padding=Option(        left=10,        right=10,        top=10,        bottom=10,    ),    stroke=Option(        color='#ffffff',        hide=False,        shadow=True,        width=2    ),    yvals=Option(        show=False,        inside=False,        fontSize=11,        fontColor='#000000',        skipSmallValues=True,        snapToOrigin=False,        renderer=None    ),    fillOpacity=1.0,    shouldFill=True,    barWidthFillFraction=0.75,    pieRadius=0.4,    colorScheme=Option(        name='gradient',        args=Option(            initialColor=DEFAULT_COLOR,            colors=None,            ),    ),    title=None,    titleColor='#000000',    titleFont='Tahoma',    titleFontSize=12,    encoding='utf-8',)

有了它,我們可以根據自己的需要定義各種樣式。

如下(代碼中只列舉了主函數,其他函數請見上篇博文):

if __name__ == '__main__':    '''    Function:使用pycha畫各種圖表    Input:NONE    Output: NONE    author: socrates    blog:http://blog.csdn.net/dyx1024    date:2012-02-29    '''    #資料來源    dataSet=(              ('iphone',((0,1),(1,3),(2,2.5))),              ('htc',((0,2),(1,4),(2,3))),              ('hw',((0,5),(1,1,),(2,0.5))),              ('zte',((0,3),(1,2,),(2,1.5))),             )     #    #映像屬性定義#    options={ #                'legend':{'hide':False}, #                'title':'手機銷售量分布圖(by dyx1024)',#                'titleColor':'#0000ff',#                'titleFont':'字型',#                'background':{'chartColor': '#ffffff'}, #                'axis':{'labelColor':'#ff0000'},#            }         #自訂樣式    options1={        'axis': {            'x': {                       #x軸                'label': 'month',        #標籤名稱                'rotate': 25,                        },            'y': {                       #y軸                'tickCount': 8,          #橫線個數                'rotate': 25,                'label': 'count'            }        },        'background': {            'chartColor': '#ffffff',     #圖表背景色            'baseColor': '#ffffff',      #邊框顏色            'lineColor': '#0000ff'       #橫線顏色        },        'colorScheme': {            'name': 'gradient',            'args': {                'initialColor': '#CD3700', #圖表顏色            },        },        'legend': {            'hide': True,     #是否隱藏表徵圖樣本        },        'padding': {            'left': 10,       #左邊框            'bottom': 10,     #底邊框        },        'title': 'pychar test(by dyx1024)' #圖片標題            }                         surface = set_charvalue()        #根據需要調用不同函數畫不同形狀的圖    #draw_pie(surface, options, dataSet)    #draw_vertical_bar(surface, options, dataSet)    #draw_horizontal_bar(surface, options, dataSet)    #draw_scatterplot(surface, options, dataSet)    #draw_stackedverticalbarChar(surface, options, dataSet)    #draw_stackedhorizontalbarChart(surface, options, dataSet)    #draw_line(surface, options, dataSet)    #draw_vertical_bar(surface, options1, dataSet)    draw_line(surface, options1, dataSet)

做一下單元測試:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.