今天给大家介绍一个很酷的Python手绘风格可视化包:cutecharts不同于常见的图表如Matplotlib、pyecharts。使用这个包可以生成各种看起来像手绘的图表。在一些特殊场景下,效果可能会更好。其画风如下:cucharts是pyecharts作者chenjiandongx开源的一个轻量级项目;目前支持五种图表:Bar、Line、Pie、Radar、Scatter;支持页面组合图表;installpipinstallcutcharts;Line——基本例子支持的参数,参考源码中的注释即可~defset_options(self,labels:Iterable,x_label:str="",y_label:str="",y_tick_count:int=3,legend_pos:str="upLeft",colors:Optional[Iterable]=None,font_family:Optional[str]=None,):""":paramlabels:X轴标签数据:paramx_label:Xaxisname:paramy_label:Y轴名称:paramy_tick_count:Y轴刻度段数:paramlegend_pos:图例位置,包括"upLeft","upRight","downLeft","downRight"Optional:paramcolors:标签颜色array:paramfont_family:CSSfont-family"""defadd_series(self,name:str,data:Iterable):""":paramname:seriesname:paramdata:系列数据列表"""Basicexamplefromcutecharts.chartsimportLine#falsedatax_data=['Apple','Huawei','小米','Oppo','Vivo','魅族','一加']y_data_1=[57,134,137,129,145,60,49]y_data_2=[114,55,27,101,125,27,105]chart=Line("手机销量")chart.set_options(labels=x_data,x_label="Brand",y_label="Sales",)chart.add_series("series-A",y_data_1)chart.add_series("series-B",y_data_2)chart.render_notebook()修改图例位置fromcutecharts.chartsimportLine#Falsedatax_data=['Apple','Huawei','Xiaomi','Oppo','Vivo','魅族','一加']y_data_1=[57,134,137,129,145,60,49]y_data_2=[114,55,27,101,125,27,105]chart=Line("手机电话销售")chart.set_options(labels=x_data,x_label="Brand",y_label="Sales",legend_pos="upRight")chart.add_series("series-A",y_data_1)chart.add_series("series-B",y_data_2)chart.render_notebook()Bar-基本示例不支持多系列数据~defset_options(self,labels:Iterable,x_label:str="",y_label:str="",y_tick_count:int=3,colors:Optional[Iterable]=None,font_family:Optional[str]=None,):""":paramlabels:X轴标签data:paramx_label:X轴名称:paramy_label:Y轴名称:paramy_tick_count:Y轴刻度段数:paramcolors:labelcolorarray:paramfont_family:CSSfont-family"""defadd_series(self,name:str,data:Iterable):""":paramname:seriesname:paramdata:seriesdatalist"""基本示例#假数据x_data=['Apple','Huawei','小米','Oppo','Vivo','魅族','一加']y_data=[57,134,137,129,145,60,49]chart=Bar("手机销量")chart.set_options(labels=x_data,x_label="Brand",y_label="Sales",colors=Faker.colors)chart.add_series("series-A",y_data)chart.render_notebook()Pie-基本示例defset_options(self,labels:Iterable,inner_radius:float=0.5,legend_pos:str="upLeft",colors:Optional[Iterable]=None,font_family:Optional[str]=None,):""":paramlabels:数据标签列表:paraminner_radius:饼图半径:paramlegend_pos:图例位置,有"upLeft","upRight","downLeft","downRight"optional:paramcolors:labelcolorarray:paramfont_family:CSSfont-family"""defadd_series(self,data:Iterable):""":paramdata:seriesdatalist"""基本示例#falsedatax_data=['Apple','华为','小米','Oppo','Vivo','魅族','一加']y_data=[57,134,137,129,145,60,49]chart=Pie("手机销量")chart.set_options(labels=x_data,colors=Faker.colors)chart.add_series(y_data)chart.render_notebook()修改内圆半径#假数据x_data=['Apple','Huawei','Xiaomi','Oppo','vivo','魅族','OnePlus']y_data=[57,134,137,129,145,60,49]chart=Pie("手机销量")chart.set_options(labels=x_data,inner_radius=0,colors=Faker.colors)chart.add_series(y_data)chart.render_notebook()Radar——基本示例参考代码注释:defset_options(self,labels:Iterable,is_show_label:bool=True,is_show_legend:bool=True,tick_count:int=3,legend_pos:str="upLeft",colors:Optional[Iterable]=None,font_family:Optional[str]=None,):""":paramlabels:数据标签列表:paramis_show_label:是否显示标签:paramis_show_legend:是否显示图例:paramtick_count:坐标系划分刻度:paramlegend_pos:图例位置,有"upLeft","upRight","downLeft","downRight"可选:paramcolors:标签颜色数组:paramfont_family:CSSfont-family"""defadd_series(self,name:str,data:Iterable):""":paramname:seriesname:paramdata:系列数据列表"""基本示例#falsedatax_data=['Apple','Huawei','小米','Oppo','Vivo','魅族','一加']y_data_1=[57,134,137,129,145,60,49]y_data_2=[114,55,27,101,125,27,105]chart=Radar("手机销量")chart.set_options(labels=x_data,is_show_legend=True,colors=Faker.colors)chart.add_series("series-A",y_data_1)chart.add_series("series-B",y_data_2)chart.render_notebook()Scatter-基本示例defset_options(self,x_label:str="",y_label:str="",x_tick_count:int=3,y_tick_count:int=3,is_show_line:bool=False,dot_size:int=1,time_format:Optional[str]=None,legend_pos:str="upLeft",colors:Optional[Iterable]=None,font_family:Optional[str]=None,):""":paramx_label:X坐标轴名称:paramy_label:Y坐标轴名称:paramx_tick_count:X轴刻度段数:paramy_tick_count:Y轴刻度段段number:paramis_show_line:是否将散点连成一条线:paramdot_size:散点大小:paramtime_format:日期格式:paramlegend_pos:图例位置,有"upLeft","upRight","downLeft","downRight"“可选:参数颜色:标签颜色数组:参数字体系列:CSS字体系列”“”defadd_series(self,名称:str,数据:可迭代):“”“:参数名称:系列名称:参数数据:系列数据列表,[(x1,y1),(x2,y2)]"""基础示例#随机生成数据data_1=[(random.randint(0,100),random.randint(0,100))for_inrange(100)]data_2=[(random.randint(0,100),random.randint(0,100))for_inrange(100)]chart=Scatter("随机点")chart.set_options(x_label="我是x-label",y_label="我是x-yabel",x_tick_count=3,y_tick_count=3,is_show_line=False,dot_size=1,legend_pos="upLeft",colors=Faker.colors)chart.add_series("系列-A",data_1)chart.add_series("系列-A",data_2)chart.render_notebook()点连线#随机生成数据data_1=[(random.randint(0,100),random.randint(0,100))for_inrange(10)]data_2=[(random.randint(0,100),random.randint(0,100))for_inrange(10)]chart=Scatter("randomdot")chart.set_options(x_label="我是x-label",y_label="我是x-yabel",x_tick_count=3,y_tick_count=3,is_show_line=True,dot_size=1,legend_pos="upLeft",colors=Faker.colors)chart.add_series("series-A",data_1)chart.add_series("series-A",data_2)chart.render_notebook()组合图表——Page#假数据x_data=['苹果','华为','小米','Oppo','Vivo','魅族','一加']y_data=[57,134,137,129,145,60,49]chart_1=Pie("手机销量")chart_1.set_options(labels=x_data,inner_radius=0.6,colors=Faker.colors)chart_1.add_series(y_data)chart_2=Bar("手机销量")chart_2.set_options(labels=x_data,x_label="品牌",y_label="销售",colors=Faker.colors)chart_2.add_series("series-A",y_data)page=Page()page.add(chart_1,chart_2)page.render_notebook()
