tianzhig 发表于 2017-5-8 10:40:23

Python:使用pycha快速绘制办公常用图二(使用样式定制个性化图表)

  在昨天的文章《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:NONEOutput: NONEauthor: socratesblog:http://blog.csdn.net/dyx1024date: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)  

做一下单元测试:





页: [1]
查看完整版本: Python:使用pycha快速绘制办公常用图二(使用样式定制个性化图表)