pyecharts在数据可视化中的应用详解
使用pyecharts进行数据可视化
安装 pip install pyecharts也可以在pycharm软件里进行下载pyecharts库包。 下载成功后进行查询版本号
import pyecharts print(pyecharts.__version__)
pyecharts的中文官网
可以查看pyecharts的中文官网介绍http://pyecharts.org/#/zh-cn/intro。
一般的使用方法
add() 该方法主要用于添加图表的数据和设置各种配置项。
show_config() 用于打印输出图表的所有配置项
render() 该方法默认将会在根目录下生成一个 render.html 的文件,支持 path 参数,设置文件保存位置,如 render(r"e:my_first_chart.html"),文件用浏览器打开。
注意* 默认的编码类型为 UTF-8,在 Python3 中是没什么问题的,Python3 对中文的支持好很多。但是在 Python2 中,编码的处理是个很头疼的问题,暂时没能找到完美的解决方法,目前只能通过文本编辑器自己进行二次编码,我用的是 Visual Studio Code,先通过 Gbk 编码重新打开,然后再用 UTF-8 重新保存,这样用浏览器打开的话就不会出现中文乱码问题了。
基本使用
chart_name = Type() 初始化具体类型图表。
add() 添加数据及配置项。
render() 生成 .html 文件。
用示例来解决实际问题
1.美国1995年-2009年邮费变化折线图、阶梯图;
数据如下: 年份 : [“1995”, “1996”, “1997”, “1998”, “1999”, “2000”, “2001”, “2002”, “2003”, “2004”, “2005”, “2006”, “2007”, “2008”, “2009”] 邮费: [0.32, 0.32, 0.32, 0.32, 0.33, 0.33, 0.34, 0.37, 0.37, 0.37, 0.37, 0.39, 0.41, 0.42, 0.44] 折线图 代码如下:
import pyecharts.options as opts from pyecharts.charts import Line year= ["1995", "1996", "1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009"] postage= [0.32, 0.32, 0.32, 0.32, 0.33, 0.33, 0.34, 0.37, 0.37, 0.37, 0.37, 0.39, 0.41, 0.42, 0.44] ( Line() .set_global_opts( tooltip_opts=opts.TooltipOpts(is_show=False), xaxis_opts=opts.AxisOpts(type_="category"), yaxis_opts=opts.AxisOpts( type_="value", axistick_opts=opts.AxisTickOpts(is_show=True), splitline_opts=opts.SplitLineOpts(is_show=True), ), ) .add_xaxis(xaxis_data=year) .add_yaxis( series_name="", y_axis=postage, symbol="emptyCircle", is_symbol_show=True, label_opts=opts.LabelOpts(is_show=False), ) .render("basic_line_chart.html") )
会在同目录下生成一个basic_line_chart.html的网页,打开网页则会显示该代码的运行结果。(此不展示,与下同)
阶梯图 代码如下:
import pyecharts.options as opts from pyecharts.charts import Line year = ["1995", "1996", "1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009"] postage = [0.32, 0.32, 0.32, 0.32, 0.33, 0.33, 0.34, 0.37, 0.37, 0.37, 0.37, 0.39, 0.41, 0.42, 0.44] c = ( Line() .add_xaxis(xaxis_data=year) .add_yaxis("美国1995年-2009年邮费", y_axis=postage, is_step=True) .set_global_opts(title_opts=opts.TitleOpts(title="Line-阶梯图")) .render("line_step.html") )
会在同目录下生成一个line_step.html的网页,打开网页则会显示该代码的运行结果:
2.2000年-2010年热狗大胃王比赛前三名成绩的堆叠柱形图、极坐标系-堆叠柱状图(南丁格尔玫瑰图); 数据文件:hot-dog-places.csv hot-dog-places.csv内写着:
2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010 25,50,50.5,44.5,53.5,49,54,66,59,68,54 24,31,26,30.5,38,37,52,63,59,64.5,43 22,23.5,25.5,29.5,32,32,37,49,42,55,37
等数据将其保存为csv文件 堆叠柱形图 代码如下:
from pyecharts import options as opts from pyecharts.charts import Bar import csv filename="hot-dog-places.csv" data_x=[] #打开文件循环读取数据 with open(filename) as f: reader = csv.reader(f) for data_row in reader: data_x.append(data_row) x=data_x[0] #读取数据列表集中第一行数据进行赋值 y1=data_x[1] y2=data_x[2] y3=data_x[3] c = ( Bar() .add_xaxis(x) .add_yaxis("第一名", y1, stack="stack1") .add_yaxis("第二名", y2, stack="stack1") .add_yaxis("第三名", y3, stack="stack1")#显示在同一条柱状图中,不带stack属性则会分为三条柱状图 .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-堆叠柱形图")) .render("bar_stack0.html") )
会在同目录下生成一个bar_stack0.html的网页,打开网页则会显示该代码的运行结果:
极坐标系-堆叠柱状图(南丁格尔玫瑰图) 代码如下:
from pyecharts import options as opts from pyecharts.charts import Polar import csv filename="hot-dog-places.csv" data_x=[] #打开文件循环读取数据 with open(filename) as f: reader = csv.reader(f) for data_row in reader: data_x.append(data_row) x=data_x[0] #读取数据列表集中第一行数据进行赋值 y1=data_x[1] y2=data_x[2] y3=data_x[3] c = ( Polar() .add_schema(angleaxis_opts=opts.AngleAxisOpts(data=x, type_="category")) .add("A", y1, type_="bar", stack="stack0") .add("B", y2, type_="bar", stack="stack0") .add("C", y3, type_="bar", stack="stack0") .set_global_opts(title_opts=opts.TitleOpts(title="极坐标系-堆叠柱状图(南丁格尔玫瑰图)")) .render("极坐标系-堆叠柱状图(南丁格尔玫瑰图).html") )
打开网页则会显示该代码的运行结果:
极坐标系-堆叠柱状图 代码与上面相同,需要改的是c后面接的将其更改为如下代码:
d = ( Polar() .add_schema( radiusaxis_opts=opts.RadiusAxisOpts(data=x, type_="category"), angleaxis_opts=opts.AngleAxisOpts(is_clockwise=True, max_=200), ) .add("A", y1, type_="bar", stack="stack1") .add("B", y2, type_="bar", stack="stack1") .add("C", y3, type_="bar", stack="stack1") .set_global_opts(title_opts=opts.TitleOpts(title="极坐标系-堆叠柱状图")) .set_series_opts(label_opts=opts.LabelOpts(is_show=True)) .render("极坐标系-堆叠柱状图.html") )
打开网页则会显示该代码的运行结果:
3.某网站用户感兴趣的领域的投票结果绘制饼图、环形图; 数据文件:vote_result.csv vote_result.csv内写着:
感兴趣的领域,票数 金融,172 医疗保健,136 市场业,135 零售业,101 制造业,80 司法,68 工程与科学,50 保险业,29 其他,41
饼图 代码如下:
from pyecharts import options as opts from pyecharts.charts import Pie import csv filename="vote_result.csv" data_x=[] #打开文件循环读取数据 with open(filename,'r', encoding='UTF-8') as f: reader = csv.reader(f) for data_row in reader: data_x.append(data_row) b=[] c=[] for index,values in enumerate(data_x): if(index>0): b.append(values[0]) c.append(values[1]) x=data_x[0] #读取数据列表集中第一行数据进行赋值 d = ( Pie() .add( "", [list(z) for z in zip(b, c)], center=["35%", "50%"], ) .set_global_opts( title_opts=opts.TitleOpts(title="投票结果饼图"), legend_opts=opts.LegendOpts(pos_left="15%"), ) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) .render("pie_position.html") )
打开网页则会显示该代码的运行结果:
环形图 代码如下:
from pyecharts import options as opts from pyecharts.charts import Pie import csv filename="vote_result.csv" data_x=[] #打开文件循环读取数据 with open(filename,'r', encoding='UTF-8') as f: reader = csv.reader(f) for data_row in reader: data_x.append(data_row) b=[] c=[] for index,values in enumerate(data_x): if(index>0): b.append(values[0]) c.append(values[1]) d = ( Pie() .add( "", [list(z) for z in zip(b, c)], radius=["40%", "75%"], ) .set_global_opts( title_opts=opts.TitleOpts(title="环形图"), legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"), ) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) .render("投票结果+环形图.html") )
打开网页则会显示该代码的运行结果:
4.奥巴马的政治举措民意调查结果的堆叠柱形图; 数据文件:approval_rate.csv approval_rate.csv内写着:
政治举措,支持,反对,不发表意见 种族问题,52,38,10 教育,49,40,11 恐怖活动,48,45,7 能源政策,47,42,11 外交事务,44,48,8 环境,43,51,6 宗教政策,41,53,6 税收,41,54,5 医疗保健政策,40,57,3 经济,38,59,3 就业政策,36,57,7 贸易政策,31,64,5 外来移民,29,62,9
堆叠柱形图 代码如下:
from pyecharts import options as opts from pyecharts.charts import Bar import csv filename="approval_rate.csv" data_x=[] #打开文件循环读取数据 with open(filename,'r', encoding='UTF-8') as f: reader = csv.reader(f) for data_row in reader: data_x.append(data_row) x=[] #读取数据列表集中第一行数据进行赋值 b=[] c=[] d=[] e=[] for index,values in enumerate(data_x): if(index>0): b.append(values[0]) c.append(values[1]) d.append(values[2]) e.append(values[3]) elif(index==0): x.append(values) print(b) c = ( Bar() .add_xaxis(b) .add_yaxis(x[0][1], c, stack="stack1") .add_yaxis(x[0][2], d, stack="stack1") .add_yaxis(x[0][3], e, stack="stack1")#显示在同一条柱状图中,不带stack属性则会分为三条柱状图 .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) .set_global_opts(title_opts=opts.TitleOpts(title="Bar-堆叠柱形图")) .render("政治举措民意调查结果.html") )
打开网页则会显示该代码的运行结果:
到此这篇关于pyecharts在数据可视化中的应用详解的文章就介绍到这了,更多相关pyecharts 数据可视化内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
华为鸿蒙系统2.0曝光:9月发布 打通PC、手表、车机等
据国内媒体报道,华为鸿蒙系统(HarmonyOS)将于今年 9 月 11 日举行的华为开发者大会上发布 2.0 版本。2019 年 8 月,华为推出鸿蒙 1.0,之后搭载在智慧屏产品上测试,而今年的 2.0 版本,将打通 PC、手表和车机等产品终端。 此前有消息称,华为计划推出新的智能手表系列 Mate Watch,并且有望搭载鸿蒙 OS,或将在今年 9 月与 Mate 40 系列一同发布。这也是第一款搭载鸿蒙 OS 的移动设备。荣耀智慧屏和华为智慧屏已经率先采用鸿蒙 OS 系统。 从此前华为公布的发展规划来看,鸿蒙 OS 2.0 将覆盖创新国产 PC、手表、手环、车机;而到了明年的鸿蒙 OS 3.0,还将打通音箱、耳机、VR 眼镜以及更多设备。 值得注意的是,企查查显示,华为申请了一大批鸿蒙相关的商标,目前正在等待审查。 曝光的截图显示,这些注册的商标包括:有 HUAWEI HarmonyOS 华为鸿蒙系统、HONOR HarmonyOS 荣耀鸿蒙系统、HUAWEI ARK OS 华为方舟系统、HarmonyOS Linked、HarmonyOS Connected、AIRGlas...
- 下一篇
Qt4中学习使用QtCharts绘图二:声波绘制
1、实例编写环境 操作系统:Windows 10 企业版开发工具:Visual Studio 2010 旗舰版开发环境:Qt4.8.6,QtCharts编程语言:C++ 2、实例涉及的内容 本实例主要是通过获取电脑的自带音频输入设备获取声音信息,然后通过使用QtCharts对声波进行绘制。涉及主要类有:QAudioDeviceInfo、QAudioInput、QAudioFormat、QIODevice。在使用Qt库进行开发时候,大家使用频率较高的多数为Qt的界面控件类,大家也就都比较熟悉了。QAudioDeviceInfo:该类提供了查询音频设备及其功能的接口。QAudioInput:该类提供用于从音频输入设备接收音频数据的接口。QAudioFormat:该类除了包含音频流的编码信息之外,还包含了其它参数信息。这些额外的参数进一步指明了:频率、通道数量、样本大小、样本类型和字节顺序等信息。QIODevice:该类是Qt中所有IO设备的基类接口(在笔者的实际工作中很少自己主动重写QIODevice类来实现某些功能,通常Qt中已经实现QFile、QTextStream、QDataStre...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8编译安装MySQL8.0.19
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Hadoop3单机部署,实现最简伪集群