[小白系列]利用echarts或者pyecharts来实现高端大气上档次的可视化

利用echarts或者pyecharts实现高端大气上档次的可视化

https://zhuanlan.zhihu.com/p/25841878

简介

Echarts 是一个由百度开源的数据可视化工具,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。pyecharts api可以参考:https://pyecharts.org/#/zh-cn/chart_api

  1. Echarts,百度开源的数据可视化工具,交互性好,图表精美

  2. Pyecharts = Python + Echarts
    在python中使用echarts
    新版本1.X,不向下兼容,,全面拥抱 Python3 和 TypeHint
    即原有0.5.x版本不再进行维护

  3. 主要分为全局配置组件和系列配置组件。

  • 系列配置项 set_series_opts(),可配置图元样式、文字样式、标签样式、点线样式等;
  • 全局配置项 set_global_opts(),可配置标题、动画、坐标轴、图例等;

可视化显示(代码+图例)

bar.render_notebook()   # 直接使用jupyter直接进行交互,更方便一点
bar.render('temp.html')   # 渲染成html,再打开HTML文件
  • Step1,引入echarts(引入)
<script src="echarts.min.js"></script>  # 因为使用第三方的js,所以要提前加载进来
  • Step2,生成echarts对象(创建)
var myChart = echarts.init(document.getElementById('main'));  # 对echarts进行初始化,得到对象myChart
  • Step3,需要通过一个option对象来进行配置 (内容是option,这里对其进行配置)(配置)

使用 options 配置项,在 pyecharts 中,一切皆 Options。

1.条形图

用echarts实现

<script type="text/javascript">
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('main'));  // 先得到一个main
    // 指定图表的配置项和数据
    // 生成一个option
    var option = {  
        title: {
            text: '昨日新增确诊国家 Top10'
        },
        tooltip: {},
        legend: {
            data:['新增确诊']


        },
        xAxis: {
            data: ["美国","西班牙","意大利","法国","德国","伊朗","英国","以色列","荷兰","奥地利"]
        },
        yAxis: {},
        series: [{
            name: '新增',
            type: 'bar',  // 代表我们要呈现的图的类型为条形图
            data: [13981, 7457, 5210, 2933, 1970, 1700, 1452, 1000, 852, 684]
        }]
    };
    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
</script>

用pyecharts来实现

# 用pyecharts来实现
import pyecharts.options as opts
from pyecharts.charts import Bar
country = ["美国","西班牙","意大利","法国","德国","伊朗","英国","以色列","荷兰","奥地利"]
data = [13981, 7457, 5210, 2933, 1970, 1700, 1452, 1000, 852, 684]    
bar = (    
	Bar()     
	.add_xaxis(country)    
	.add_yaxis("新增确诊", data)
	.set_series_opts(label_opts=opts.LabelOpts(is_show=False))    
	.set_global_opts(title_opts=opts.TitleOpts(title="昨日新增确诊国家 Top10"))
	)
bar.render('temp.html')  # 直接使用jupyter直接进行交互
#bar.render_notebook()  #  render的意思是把之前得到的bar对象渲染为HTML文件

在这里插入图片描述

# 柱状图绘制
import pyecharts.options as opts
from pyecharts.charts import Bar
# 绘制多列柱状图
	country = ["美国","西班牙","意大利","法国","德国","伊朗","英国","以色列","荷兰","奥地利"]
	data1 = [69223, 49515, 74386, 25233, 37323, 27017, 9529, 2369, 6412, 5560]    
	data2 = [13981, 7457, 5210, 2933, 1970, 1700, 1452, 1000, 852, 684]    
	bar = (    
		Bar()    
		.add_xaxis(country)    
		.add_yaxis("累计确诊", data1)
		.add_yaxis("新增确诊", data2)
		.set_series_opts(label_opts=opts.LabelOpts(is_show=False))    
		.set_global_opts(title_opts=opts.TitleOpts(title="昨日新增确诊国家 Top10"))
		)
	bar.render('temp.html')  # render的意思是把之前得到的bar对象渲染为HTML文件

在这里插入图片描述

2.折线图

import pyecharts.options as opts
from pyecharts.charts import Line

# 设置折线图
line=Line()
# 设置x轴数据
line.add_xaxis(["201{}年/{}季度".format(y,z) 
              for y in range(4) 
              for z in range(1,5)])
# 设置y轴数据
line.add_yaxis(
             "手机销量", 
             [4.80,4.10,6.00,6.50,5.80,5.20,6.80,7.40,
              6.00,5.60,7.50,7.80,6.30,5.90,8.00,8.40]
             )
line.set_global_opts(
	#设置x轴标签旋转角度
	xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-40),),
	#设置y轴名称
	yaxis_opts=opts.AxisOpts(name="销量(单位/百万台)"),
	#设置图表标题
	title_opts=opts.TitleOpts(title="折线图"))

#渲染图表
line.render_notebook() 

在这里插入图片描述

3.饼状图

# 绘制饼图
from pyecharts import options as opts
from pyecharts.charts import Page, Pie
v1=["啤酒","可乐","雪碧","咖啡","奶茶"]
v2=[30,19,21,12,18]

pie = (
    Pie()
    .add("", [list(z) for z in zip(v1,v2)])
    .set_global_opts(title_opts=opts.TitleOpts(title="销售收入占比"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}%"))#格式化标签输出内容
)
pie.render_notebook()

在这里插入图片描述

4.雷达图

# 绘制雷达图
from pyecharts import options as opts
from pyecharts.charts import Page, Radar

v1 = [[4300, 10000, 28000, 35000, 50000, 19000]]
v2 = [[5000, 14000, 28000, 31000, 42000, 21000]]

radar = (
    Radar()
    .add_schema(
        schema=[
            opts.RadarIndicatorItem(name="KDA", max_=6500),
            opts.RadarIndicatorItem(name="输出", max_=16000),
            opts.RadarIndicatorItem(name="经济", max_=30000),
            opts.RadarIndicatorItem(name="生存", max_=38000),
            opts.RadarIndicatorItem(name="推进", max_=52000),
            opts.RadarIndicatorItem(name="打野", max_=25000),
        ]
    )
    .add("鲁班", v1,            #添加系列名称及数据
         color="red",           #设置边框线的颜色
         areastyle_opts = opts.AreaStyleOpts(#设置填充的属性
             opacity = 0.5,                  #透明度
             color="red"                     #填充颜色
     ),)
    .add("后裔", v2,color="blue",
         areastyle_opts = opts.AreaStyleOpts(
             opacity = 0.5,#透明度
             color="blue"
     ),)
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(title_opts=opts.TitleOpts(title="英雄成长对比"))
)

radar.render_notebook()

在这里插入图片描述

5.玫瑰图

import pyecharts.options as opts
from pyecharts.charts import Pie

# 绘制玫瑰图
rose = (
    Pie()
    .add(
        "",
        [list(z) for z in zip(["201{}年/{}季度".format(y,z)
            for y in range(2) 
                  for z in range(1,3)], [4.80,4.10,5.80,5.20])],
        #设置内径外径
        radius=["0%", "75%"],
        #玫瑰图有两种类型
        rosetype="radius",          
        label_opts=opts.LabelOpts(is_show=True),
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="Pie-玫瑰图示例"))
)
rose.render_notebook()

在这里插入图片描述

发布了42 篇原创文章 · 获赞 28 · 访问量 4961

猜你喜欢

转载自blog.csdn.net/KaelCui/article/details/105278418