0
点赞
收藏
分享

微信扫一扫

Python + PyEcharts——数据可视化


  • ​​一、第一个PyEcharts图标​​
  • ​​二、柱形图/条形图​​
  • ​​Bar.add()方法签名​​
  • ​​三、堆叠(柱状)图​​
  • ​​四、折线/面积图​​
  • ​​Line.add()方法签名​​
  • ​​五、饼图​​
  • ​​Pie.add()方法签名​​
  • ​​六、散点图​​
  • ​​Scatter.add()方法签名​​
  • ​​七 地图pyecharts地图数据接口​​
  • ​​Map.add() 方法签名​​
  • ​​八、词云图​​
  • ​​WordCloud.add() 方法签名​​
  • ​​九、图标叠加 Overlap​​
  • ​​Overlap.add() 方法签名​​


一、第一个PyEcharts图标

​以下示例都是在jupyter notebook环境下运行​


1 安装:                                           ​​pip install pyecharts​​​
2 引用pyecharts​from pyecharts import Bar​​​
3 编写实现柱状图

​bar = Bar('我的第一个图标','副标题') bar.add('服装',['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子'],[5,20,36,10,75,90])​

4 输出到.html中进行展示:​bar.render(.././html/bar01.html)​​​
5 新建一个html文件

​代码: import pyecharts from pyecharts import Bar bar = Bar("我的第一个图表", "这里是副标题") bar.use_theme('dark') #暗色背景色 bar.add("服装", #注解==label ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"], #横坐标 [5, 20, 36, 10, 75, 90]) #纵坐标 bar.render('./picture1.html') #文件存储路径(默认保存当前文件路径)​​​​Bar​


二、柱形图/条形图

Bar.add()方法签名

​add( name,x_axis,y_axis, is_stack = False, bar_category_gap = '20%',**kwargs ) name -> str #图例名称 x_axis -> list # X轴数据 y_axis -> list # Y轴数据 is_stack -> bool #数据堆叠,同个类目轴上系列配置相同的stack 值可以堆叠放置 bar_category_gap -> int/str #类目轴柱状距离,默认20% ​​​​代码: from pyecharts import Bar bar = Bar('基本柱状图','副标题') bar.add('服装', ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子'], [5,20,36,10,75,90], is_more_utils = True #设置最右侧工具栏 ) bar.show_config() #调试输出pyecharts的js配置信息 bar.render('./html/first01.html')​


三、堆叠(柱状)图

​代码: from pyecharts import Bar attr = ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子'] v1 = [5,20,36,10,75,90] v2 = [10,25,8,60,20,80] bar = Bar('柱状信息堆叠图') bar.add('商家A',attr,v1,is_stack = True) #is_stack = True才表示堆叠在一起 bar.add('商家B',attr,v2,is_stack = True) bar.render('./html/first03.html') ​


四、折线/面积图

Line.add()方法签名

​add( name,x_axis,y_axis, is_symbol_show = True, is_smooth = False, is_stack = False, is_step = False, is_fill = False,**kwargs ) 以下为属性默认值: is_symbol_show = True, #是否显示标记图形 is_smooth = False, #是否显示平滑曲线 is_stack = False, #是否数据堆叠 is_step = False, #是否是阶梯线 is_fill = False,**kwargs #是否填充曲线区域面积 ​​​​▶代码1: from pyecharts import Line attr = ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子'] v1 = [5,20,36,10,75,90] v2 = [10,25,8,60,20,80] line = Line('折线示例图') line.add('商家A',attr,v1,mark_point = ['average']) line.add('商家B',attr,v2,is_smooth = True, mark_line = ['max','average']) line.render('./html/first05.html') -------------------------------------------------------------- ▶代码2:(定制折线图) from pyecharts import Line attr = ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子'] v1 = [5,20,36,10,75,90] v2 = [10,25,8,60,20,80] line = Line('折线示例图') line.add('商家A',attr,v1, mark_point = ['average','max','min'], #标注点:平均值,最大值,最小值 mark_point_symbol = 'diamond', #标注点:钻石形状 mark_point_textcolor = '#40ff27') #标注点:标注文本颜色 line.add('商家B',attr,v2,mark_point = ['average','max','min'], mark_point_symbol = 'arrow', mark_point_symbolsize = 40) line.render('./html/line01.html')​


五、饼图

Pie.add()方法签名

​add(name,attr,value,radius = None,center = None,rosetype = None,**kwargs) attr:属性名称 radius:饼图半径,数组第一项是内径,第二项是外径,默认[0,75,],设置成百分比 center:圆心,数组第一项是X轴,第二项是Y轴,默认[50,50] rosetype: 是否展示成南丁格尔图,用过半径区分数据大小,radius和area两种模式,默认radius ​​​​▶代码1:(饼图) from pyecharts import Pie attr = ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子'] v1 = [5,20,36,10,75,90] pie = Pie('饼图示例') pie.add('',attr,v1,is_label_show = True) pie.render('./html/pie01.html') ▶代码2:(环形图) from pyecharts import Pie attr = ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子'] v1 = [5,20,36,10,75,90] pie = Pie('饼图-环形图示例',title_pos = 'center') pie.add( '',attr,v1, #'':图例名(不使用图例) radius = [40,75], #环形内外圆的半径 is_label_show = True, #是否显示标签 label_text_color = None, #标签颜色 legend_orient = 'vertical', #图例垂直 legend_pos = 'left' ) pie.render('./html/pie02.html') ​


六、散点图

Scatter.add()方法签名

​add(name,x_axis,y_axis,extra_data = None,symbol_size = 10,**kwargs) extra_data -> int:第三维数据(可在 visualmap 中将视图元素映射到第三维度) symbol_size -> int: 标记图形大小,默认为10 ​​​​▶代码1: from pyecharts import Scatter v1 = [5,20,35,50,65,80] v2 = [10,20,30,40,50,60] scatter = Scatter('散点示例图') scatter.add('A',v1,v2) scatter.add('B',v1[::-1],v2) #v1[::-1]代表切片倒序 scatter.render('./html/scatter01.html') ▶代码2:(引入第三维/类似气泡图) from pyecharts import Scatter v1 = [5,20,35,50,65,80] v2 = [10,20,30,40,50,60] scatter = Scatter('散点-气泡示例图') scatter.add('A',v1,v2) scatter.add('B',v1[::-1],v2, #v1[::-1]代表切片倒序 is_visualmap = True, #显示滑动条 symbol_size = 30, #显示图内标点大小 vasual_range_size = [20,80]) #显示滑动范围 scatter.render('./html/scatter02.html') ​


七 地图​​pyecharts地图数据接口​​

Map.add() 方法签名

​-countries-pypkg pip install echarts-china-provinces-pypkg pip install echarts-china-cities-pypkg pip install echarts-china-counties-pypkg pip install echarts-china-misc-pypkg pip install echarts-united-kingdom-pypkg​​​​add( name,attr,value, maptype = 'china', is_roam = True, is_map_symobol_show = True **kwargs ) maptype -> str: 地图类型,支持China,world,北京,天津,上海,湖南,湖北,……363个二线城市 is_roam -> bool/str 是否开启鼠标缩放,漫游等,默认 True, 若只想开启缩放/平移 设置scale/move 设置成 True 开启 is is_map_symobol_show 是否显示地图标记,默认 True。 ​​​​▶代码1: from pyecharts import Map value = [155,10,66,78] attr = ['福建','山东','北京','上海'] map = Map('全国地图示例',width = 1200,height = 600) map.add('',attr,value,maptype = 'china') map.render('./html/map01.html') ▶代码2: from pyecharts import Map value = [155,10,66,78] attr = ['汕头市','汕尾市','揭阳市','肇庆市'] map = Map('广东地图示例',width = 1200,height = 600) map.add('',attr,value,maptype = '广东', is_visualmap = True, visual_text_color = '#000', is_label_show = True ) map.render('./html/map02.html') ​


八、词云图

WordCloud.add() 方法签名

​add( name,attr,value, shape = 'circle', word_gap = 20, word_size_range = None rotate_step = 45 ) shape-> list :词云图轮廓(circle,cardioid,diamond,triangle-forward,triangle,pentagon,star) word_gap -> int 单词间隔 默认 20 word_size_range -> int 单词字体大小范围 默认[12,60] rotate_step -> int 单词旋转角度,默认45。 ​​​​from pyecharts import WordCloud name = [ 'Though','the answer','this question', 'may at first','seem to border','on the', 'absurd','reflection','will show','that there', 'is a','good deal','more in','it than meets','the eye' ] value = [10000,6189,4556,2356,2233, 1895,1456,1255,981,875, 542,462,361,265,125] worldcloud = WordCloud(width = 1300,height = 620) worldcloud.add('',name,value,word_size_range = [20,100]) worldcloud.render('./html/worldcloud01.html')​


九、图标叠加 Overlap

自定义结合​​Line/ Bar/ Kline/ Scatter/ EffectScatter​​​ 等图表。
利用第一张图表为基础,将后面的数据画在第一张图上。

Overlap.add() 方法签名

​add(chart, xaxis_index = 0, yaxis_index = 0, is_add_xaxis = False, is_add_yaxis = False) 属性: is_add_xaxis / is_add_yaxis 是否新增坐标X/Y 默认 False ​​​​▶代码1:bar + line 叠加 from pyecharts import Bar,Line,Overlap attr = ['A','B','C','D','E','F'] v1 = [10,20,30,40,50,60] v2 = [38,28,35,58,65,70] bar = Bar('Line - Bar示例') bar.add('bar',attr,v1) line = Line() line.add('line',attr,v2) overlop = Overlap() overlop.add(bar) overlop.add(line) overlop.render('./html/line-bar01.html')​



举报

相关推荐

0 条评论