python中pyecharts,pyecharts是python的可视化工具包吗

  python中pyecharts,pyecharts是python的可视化工具包吗

  Echarts是百度开源的用于生成eCharts图表的类库,可以用于数据可视化分析。本文将详细讲解Pyecharts的使用方法,以供参考。

  00-1010 1.安装肾盂造影2。图表基础2.1主题样式2.2图表标题2.3图例2.4提示框2.5可视化映射2.6工具箱2.7区域缩放3。条形图模块4。折线图/面积线模块4.1折线图4.2面积图5。饼状图5.1饼状图5.2夜莺玫瑰图6。箱线图模块7。涟漪效应散射模块8。WordCloud模块9。热图模块10。水球图液体模块11。日历图表日历模块

  

目录

  pip安装pyecharts

  

1. 安装Pyecharts

  

2. 图表基础

  添加主题样式使用InitOpts()方法,

  该方法的主要参数是:

  参数wIDth canvas width要求字符串格式,如wIDth=" 500 px " height canvas height,字符串格式,如width="500px" chart _ id图表id,作为图表的唯一标识。当有多个图表时,用于区分不同的图表。page_title页面标题,字符串格式主题图表主题。ThemeType模块提供了bg_color图表背景色,字符串格式的样式可以选择如下:

  

2.1 主题风格

  向图表添加标题需要set_global_options()方法的title_opts参数,

  该参数的值由Opts模块的TitleOpts()方法生成,

  TitleOpts()方法主要参数语法如下:

  

2.2 图表标题

  设置图例需要set_global_opts()方法的legend_opts参数,

  该参数的参数值引用options模块的LegendOpts()方法。

  LegendOpts()方法的主要参数如下:

  

2.3 图例

  设置提示框主要是通过set_global_opts()方法中的tooltip_opts参数来设置。

  该参数的参数值引用options模块的TooltipOpts()方法。

  TooltipOpts()方法的主要参数如下:

  align:center">

  

  

2.5 视觉映射

  视觉映射通过 set_global_opts()方法中的 visualmap_opts参数进行设置,

  该参数的取值参考options模块的VisualMapOpts()方法。

  其主要参数如下:

  

  

  

2.6 工具箱

  工具箱通过 set_global_opts()方法中的 toolbox_opts参数进行设置,

  该参数的取值参考options模块的ToolboxOpts()方法。

  其主要参数如下:

  

  

  

2.7 区域缩放

  区域缩放通过 set_global_opts()方法中的 datazoom_opts参数进行设置,

  该参数的取值参考options模块的DataZoomOpts()方法。

  其主要参数如下:

  

  

  

3. 柱状图 Bar模块

  绘制柱状图通过Bar模块来实现,

  该模块的主要方法有:

  主要方法描述add_xaxis()x轴数据add_yaxis()y轴数据reversal_axis()翻转x、y轴数据add_dataset()原始数据

  下边展示一个简单的示例,先不使用过多复杂的样式:

  

import numpy as np

  from pyecharts.charts import Bar

  from pyecharts import options as opts

  from pyecharts.globals import ThemeType

  # 生成数据

  years = [2011, 2012, 2013, 2014, 2015]

  y1 = [1, 3, 5, 7, 9]

  y2 = [2, 4, 6, 4, 2]

  y3 = [9, 7, 5, 3, 1]

  y4 = list(np.random.randint(1, 10, 10))

  bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))

  # 为柱状图添加x轴和y轴数据

  bar.add_xaxis(years)

  bar.add_yaxis(A型, y1)

  bar.add_yaxis(B型, y2)

  bar.add_yaxis(C型, y3)

  bar.add_yaxis(D型, y4)

  # 渲染图表到HTML文件,并保存在当前目录下

  bar.render("bar.html")

  

  生成图像效果如下:

  

  这里有一个无法解释的细节,就是可以看到y4数据,即D型,在图像中没有显示出来。经过小啾的反复尝试,发现凡是使用随机数产生的数据再转化成列表,这部分随机数不会被写入到html文件中:

  

  既然不会解释,那就避免。

  

  

4. 折线图/面积图 Line模块

  Line模块的主要方法有add_xaxis() 和 add_yaxis(),分别用来添加x轴数据和y轴数据。

  add_yaxis()的主要参数如下:

  

  

  

4.1 折线图

  绘制折线图时,x轴的数据必须是字符串,图线方可正常显示。

  

from pyecharts.charts import Line

  from pyecharts import options as opts

  from pyecharts.globals import ThemeType

  # 准备数据

  x = [2011, 2012, 2013, 2014, 2015]

  x_data = [str(i) for i in x]

  y1 = [1, 3, 2, 5, 8]

  y2 = [2, 6, 5, 6, 7]

  y3 = [5, 7, 4, 3, 1]

  line = Line(init_opts=opts.InitOpts(theme=ThemeType.ESSOS))

  line.add_xaxis(xaxis_data=x_data)

  line.add_yaxis(series_name="A类", y_axis=y1)

  line.add_yaxis(series_name="B类", y_axis=y2)

  line.add_yaxis(series_name="C类", y_axis=y3)

  line.render("line.html")

  

  生成图像效果如下:

  

  

  

4.2 面积图

  绘制面积图时需要在add_yaxis()方法中指定areastyle_opts参数。其值由options模块的AreaStyleOpts()方法提供。

  

from pyecharts.charts import Line

  from pyecharts import options as opts

  from pyecharts.globals import ThemeType

  x = [2011, 2012, 2013, 2014, 2015]

  x_data = [str(i) for i in x]

  y1 = [2, 5, 6, 8, 9]

  y2 = [1, 4, 5, 4, 7]

  y3 = [1, 3, 4, 6, 6]

  line = Line(init_opts=opts.InitOpts(theme=ThemeType.WONDERLAND))

  line.add_xaxis(xaxis_data=x_data)

  line.add_yaxis(series_name="A类", y_axis=y1, areastyle_opts=opts.AreaStyleOpts(opacity=1))

  line.add_yaxis(series_name="B类", y_axis=y2, areastyle_opts=opts.AreaStyleOpts(opacity=1))

  line.add_yaxis(series_name="C类", y_axis=y3, areastyle_opts=opts.AreaStyleOpts(opacity=1))

  line.render("line2.html")

  

  图像效果如下:

  

  

  

5.饼形图

  

  

5.1 饼形图

  绘制饼形图使用的是Pie模块,该模块中需要使用的主要方法是add()方法

  该方法主要参数如下:

  主要参数描述series_name系列名称。用于提示文本和图例标签。data_pair数据项,格式为形如[(key1,value1),(key2,value2)]color系列标签的颜色。radius饼图的半径。默认设成百分比形式,默认是相对于容器的高和宽中较小的一方的一半rosetype是否展开为南丁格尔玫瑰图,可以取的值有radius货area,radius表示通过扇区圆心角展现数据的大小,即默认的扇形图;area表示所有扇区的圆心角的角度相同,通过半径来展现数据大小

  

from pyecharts.charts import Pie

  from pyecharts import options as opts

  from pyecharts.globals import ThemeType

  x_data = [AAA, BBB, CCC, DDD, EEE, FFF]

  y_data = [200, 200, 100, 400, 500, 600]

  # 将数据转换为目标格式

  data = [list(z) for z in zip(x_data, y_data)]

  # 数据排序

  data.sort(key=lambda x: x[1])

  pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.MACARONS))

  pie.add(

   series_name="类别", # 序列名称

   data_pair=data, # 数据

   )

  pie.set_global_opts(

   # 饼形图标题

   title_opts=opts.TitleOpts(

   title="各类别数量分析",

   pos_left="center"),

   # 不显示图例

   legend_opts=opts.LegendOpts(is_show=False),

   )

  pie.set_series_opts(

   # 序列标签

   label_opts=opts.LabelOpts(),

   )

  pie.render("pie.html")

  

  图像效果如下:

  

  

  

5.2 南丁格尔玫瑰图

  

from pyecharts.charts import Pie

  from pyecharts import options as opts

  from pyecharts.globals import ThemeType

  x_data = [AAA, BBB, CCC, DDD, EEE, FFF, GGG, HHH, III, JJJ, KKK, LLL, MMM, NNN, OOO]

  y_data = [200, 100, 400, 50, 600, 300, 500, 700, 800, 900, 1000, 1100, 1200, 1300, 1500]

  # 将数据转换为目标格式

  data = [list(z) for z in zip(x_data, y_data)]

  # 数据排序

  data.sort(key=lambda x: x[1])

  # 创建饼形图并设置画布大小

  pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.ROMANTIC, width=300px, height=400px))

  # 为饼形图添加数据

  pie.add(

   series_name="类别",

   data_pair=data,

   radius=["8%", "160%"], # 内外半径

   center=["65%", "65%"], # 位置

   rosetype=area, # 玫瑰图,圆心角相同,按半径大小绘制

   color=auto # 颜色自动渐变

   )

  pie.set_global_opts(

   # 不显示图例

   legend_opts=opts.LegendOpts(is_show=False),

   # 视觉映射

   visualmap_opts=opts.VisualMapOpts(is_show=False,

   min_=100, # 颜色条最小值

   max_=450000, # 颜色条最大值

   )

  )

  pie.set_series_opts(

   # 序列标签

   label_opts=opts.LabelOpts(position=inside, # 标签位置

   rotate=45,

   font_size=8) # 字体大小

   )

  pie.render("pie2.html")

  

  图像效果如下:

  

  

  

6. 箱线图 Boxplot模块

  绘制箱线图使用的是Boxplot类。

  这里有一个细节,准备y轴数据y_data时需要在列表外再套一层列表,否则图线不会被显示。

  绘制箱线图使用的是Boxplot模块,

  主要的方法有

  add_xaxis()和add_yaxis()

  

from pyecharts.charts import Boxplot

  from pyecharts.globals import ThemeType

  from pyecharts import options as opts

  y_data = [[5, 20, 22, 21, 23, 26, 25, 24, 28, 26, 29, 30, 50, 61]]

  boxplot = Boxplot(init_opts=opts.InitOpts(theme=ThemeType.INFOGRAPHIC))

  boxplot.add_xaxis([""])

  boxplot.add_yaxis(, y_axis=boxplot.prepare_data(y_data))

  boxplot.render("boxplot.html")

  

  图像效果如下:

  

  

  

7. 涟漪特效散点图 EffectScatter模块

  绘制涟漪图使用的是EffectScatter模块,代码示例如下:

  

from pyecharts.charts import EffectScatter

  from pyecharts import options as opts

  from pyecharts.globals import ThemeType

  x = [2011, 2012, 2013, 2014, 2015]

  x_data = [str(i) for i in x]

  y1 = [1, 3, 2, 5, 8]

  y2 = [2, 6, 5, 6, 7]

  y3 = [5, 7, 4, 3, 1]

  scatter = EffectScatter(init_opts=opts.InitOpts(theme=ThemeType.VINTAGE))

  scatter.add_xaxis(x_data)

  scatter.add_yaxis("", y1)

  scatter.add_yaxis("", y2)

  scatter.add_yaxis("", y3)

  # 渲染图表到HTML文件,存放在程序所在目录下

  scatter.render("EffectScatter.html")

  

  图像效果如下:

  

  

  

8. 词云图 WordCloud模块

  绘制词云图使用的是WordCloud模块,

  主要的方法有add()方法。

  add()方法的主要参数如下:

  add()方法主要的参数有

  

  准备一个txt文件(001.txt),文本内容以《兰亭集序》为例:

  

永和九年,岁在癸丑,暮春之初,会于会稽山阴之兰亭,修禊事也。群贤毕至,少长咸集。此地有崇山峻岭,茂林修竹,又有清流激湍,映带左右,引以为流觞曲水,列坐其次。虽无丝竹管弦之盛,一觞一咏,亦足以畅叙幽情。
是日也,天朗气清,惠风和畅。仰观宇宙之大,俯察品类之盛,所以游目骋怀,足以极视听之娱,信可乐也。
夫人之相与,俯仰一世。或取诸怀抱,悟言一室之内;或因寄所托,放浪形骸之外。虽趣舍万殊,静躁不同,当其欣于所遇,暂得于己,快然自足,不知老之将至;及其所之既倦,情随事迁,感慨系之矣。向之所欣,俯仰之间,已为陈迹,犹不能不以之兴怀,况修短随化,终期于尽!古人云:死生亦大矣。岂不痛哉!
每览昔人兴感之由,若合一契,未尝不临文嗟悼,不能喻之于怀。固知一死生为虚诞,齐彭殇为妄作。后之视今,亦犹今之视昔,悲夫!故列叙时人,录其所述,虽世殊事异,所以兴怀,其致一也。后之览者,亦将有感于斯文。

  

  代码示例如下:

  

from pyecharts.charts import WordCloud

  from jieba import analyse

  # 基于TextRank算法从文本中提取关键词

  textrank = analyse.textrank

  text = open(001.txt, r, encoding=UTF-8).read()

  keywords = textrank(text, topK=30)

  list1 = []

  tup1 = ()

  # 关键词列表

  for keyword, weight in textrank(text, topK=30, withWeight=True):

   # print(%s %s % (keyword, weight))

   tup1 = (keyword, weight) # 关键词权重

   list1.append(tup1) # 添加到列表中

  # 绘制词云图

  mywordcloud = WordCloud()

  mywordcloud.add(, list1, word_size_range=[20, 100])

  mywordcloud.render(wordclound.html)

  

  词云图效果如下:

  

  

  

9. 热力图 HeatMap模块

  绘制热力图使用的是HeatMap模块。

  下边以双色球案例为例,数据使用生成的随机数,绘制出热力图:

  

import pyecharts.options as opts

  from pyecharts.charts import HeatMap

  import pandas as pd

  import numpy as np

  # 创建一个33行7列的DataFrame,数据使用随机数生成。每个数据表示该位置上该数字出现的次数

  s1 = np.random.randint(0, 200, 33)

  s2 = np.random.randint(0, 200, 33)

  s3 = np.random.randint(0, 200, 33)

  s4 = np.random.randint(0, 200, 33)

  s5 = np.random.randint(0, 200, 33)

  s6 = np.random.randint(0, 200, 33)

  s7 = np.random.randint(0, 200, 33)

  data = pd.DataFrame(

   {位置一: s1,

   位置二: s2,

   位置三: s3,

   位置四: s4,

   位置五: s5,

   位置六: s6,

   位置七: s7

   },

   index=range(1, 34)

  )

  # 数据转换为HeatMap支持的列表格式

  value1 = []

  for i in range(7):

   for j in range(33):

   value1.append([i, j, int(data.iloc[j, i])])

  # 绘制热力图

  x = data.columns

  heatmap=HeatMap(init_opts=opts.InitOpts(width=600px ,height=650px))

  heatmap.add_xaxis(x)

  heatmap.add_yaxis("aa", list(data.index), value=value1, # y轴数据

   # y轴标签

   label_opts=opts.LabelOpts(is_show=True, color=white, position="center"))

  heatmap.set_global_opts(title_opts=opts.TitleOpts(title="双色球中奖号码热力图", pos_left="center"),

   legend_opts=opts.LegendOpts(is_show=False), # 不显示图例

   # 坐标轴配置项

   xaxis_opts=opts.AxisOpts(

   type_="category", # 类目轴

   # 分隔区域配置项

   splitarea_opts=opts.SplitAreaOpts(

   is_show=True, # 区域填充样式

   areastyle_opts=opts.AreaStyleOpts(opacity=1)

   ),

   ),

   # 坐标轴配置项

   yaxis_opts=opts.AxisOpts(

   type_="category", # 类目轴

   # 分隔区域配置项

   splitarea_opts=opts.SplitAreaOpts(

   is_show=True,

   # 区域填充样式

   areastyle_opts=opts.AreaStyleOpts(opacity=1)

   ),

   ),

   # 视觉映射配置项

   visualmap_opts=opts.VisualMapOpts(is_piecewise=True, # 分段显示

   min_=1, max_=170, # 最小值、最大值

   orient=horizontal, # 水平方向

   pos_left="center") # 居中

   )

  heatmap.render("heatmap.html")

  

  热力图效果如下:

  

  

  

10. 水球图 Liquid模块

  绘制水球图使用的是Liquid模块。

  

from pyecharts.charts import Liquid

  liquid = Liquid()

  liquid.add(, [0.39])

  liquid.render("liquid.html")

  

  水球图效果如下:

  

  

  

11. 日历图 Calendar模块

  绘制日历图使用的是Calendar模块

  主要使用的方法是add()方法

  

import pandas as pd

  import numpy as np

  from pyecharts import options as opts

  from pyecharts.charts import Calendar

  data = list(np.random.random(30))

  # 求最大值和最小值

  mymax = round(max(data), 2)

  mymin = round(min(data), 2)

  # 生成日期

  index = pd.date_range(20220401, 20220430)

  # 合并列表

  data_list = list(zip(index, data))

  # 生成日历图

  calendar = Calendar()

  calendar.add("",

   data_list,

   calendar_opts=opts.CalendarOpts(range_=[2022-04-01, 2022-04-30]))

  calendar.set_global_opts(

   title_opts=opts.TitleOpts(title="2022年4月某指标情况", pos_left=center),

   visualmap_opts=opts.VisualMapOpts(

   max_=mymax,

   min_=mymin+0.1,

   orient="horizontal",

   is_piecewise=True,

   pos_top="230px",

   pos_left="70px",

   ),

   )

  calendar.render("calendar.html")

  日历图效果如下:

  

  以上就是Python数据可视化之Pyecharts使用详解的详细内容,更多关于Python Pyecharts的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: