pyecharts教程画折线图 (数据可视化echarts)

pyecharts是一款将python与echarts结合的强大的数据可视化工具,本系列文章将为你阐述pyecharts的使用细则,让你对数据进行可视化处理时更加得心应手。这一系列中全部代码在Windows 10系统下基于Python3.7和pyecharts1.9.0实际运行通过。

一、前言

在本系列上一篇文章中笔者介绍了使用pyecharts绘制地理图表的方法,运用pyecharts在绘制地图方面有着特有的优势,能动态且直观的展现出绘制者想在地图中表达的资源信息。在这一期文章里,笔者将介绍使用pyecharts绘制雷达图、词云图、日历图等基本图表。

二、使用实例

在本期文章中,我们需要导入的库有:

from pyecharts.charts import *
from pyecharts.components import Table
from pyecharts import options as opts
from pyecharts.commons.utils import JsCode
import  random
import  datetime

雷达图是一种平行坐标图,是一种从同一点开始的轴上表示多个定量或变量的二维图表。雷达图常用于绘制企业经营状况、展现评价指标之间的关系,能够直观地查看各类数据指标及数据变化趋势。

数据可视化图表excel占比,pyecharts教程画折线图

雷达图示例

实现代码:

data = [
    [66, 91, 123, 78, 82, 67],
    [89, 101, 45, 88, 86, 75],
    [86, 93, 101, 84, 35, 73],
]
radar = (Radar()
         .add_schema(schema=[
             opts.RadarIndicatorItem(name="语文", max_=150),
             opts.RadarIndicatorItem(name="数学", max_=150),
             opts.RadarIndicatorItem(name="英语", max_=150),
             opts.RadarIndicatorItem(name="政治", max_=100),
             opts.RadarIndicatorItem(name="地理", max_=100),
             opts.RadarIndicatorItem(name="历史", max_=100),
         ]
)
    .add('', data)
)
radar.render('雷达图.html')

词云图是一种以各种词汇组成的二维图表,一般用于提取大量文本中的关键字词信息,使读者能一眼扫过词云图便可以明白其主要内容和关键信息,同时也提高了阅读文本的趣味性。

数据可视化图表excel占比,pyecharts教程画折线图

词云图示例

实现代码:

words = [
    ("heart", 173),
    ("no", 365),
    ("you", 360),
    ("can", 282),
    ("yes", 273),
    ("start", 265),
    ("hello", 365),
    ("world", 124),
    ("PPT", 436),
    ("frame", 255),
    ("Hadoop", 666),
    ("zookeeper", 244),
    ("goal", 681),
    ("today", 184),
    ("Monday", 12),
    ("last time", 148),
    ("configuration", 247),
    ("batter", 182),
    ("remember", 255),
    ("to", 150),
    ("make", 162),
    ("her", 266),
    ("in", 60),
    ("my", 82),
]
wc = (
    WordCloud()
    .add("", words)
)
wc.render('词云图.html')

日历图是一种能直观显示出对应日期的某个指标取值的动态图表,利用pyecharts中的Calendar方法绘制日历图十分简单。

数据可视化图表excel占比,pyecharts教程画折线图

日历图示例

实现代码:

begin = datetime.date(2021, 1, 1)
end = datetime.date(2021, 10, 29)
data = [[str(begin + datetime.timedelta(days=i)), random.randint(1000, 1200)]
        for i in range((end - begin).days + 1)]

calendar = (
    Calendar()
        .add("", data,calendar_opts=opts.CalendarOpts(range_="2021"))
)

calendar.render('日历图.html')

饼图用于展现图表中各项的大小与各项总和的比例,常在统计学中应用。

数据可视化图表excel占比,pyecharts教程画折线图

饼图示例

实现代码:

cate = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']
data = [123,153,89,107,98,23]
pie = (Pie()
       .add('', [list(z) for z in zip(cate, data)])
       )
pie.render('饼图.html')

仪表盘图是pyecharts中一种特有图表,模仿汽车仪表盘码速表,生动地展示某项数据的取值。

数据可视化图表excel占比,pyecharts教程画折线图

仪表盘图示例

实现代码:

data = (
    '不及格率',
    12
)
gauge = (Gauge()
          .add("", [data])
          )
gauge.render('仪表盘图.html')

水球图同样是pyecharts库中一种特*图色**表,用于展示某一项指标的取值。

数据可视化图表excel占比,pyecharts教程画折线图

水球图示例

实现代码:

liquid = (Liquid()
          .add("", [0.66, 0.34])
          )
liquid.render('水球图.html')

平行坐标图用于展示在拥有高维度的评价指标情况下,各个评价对象之间的联系和等级。

数据可视化图表excel占比,pyecharts教程画折线图

平行坐标图示例

实现代码:

data = [
    ['301班', 78, 91, 123, 78, 82, 67, "优秀"],
    ['302班', 89, 101, 127, 88, 86, 75, "良好"],
    ['303班', 86, 93, 101, 84, 90, 73, "合格"],
]
parallel = (
    Parallel()
    .add_schema(
        [
            opts.ParallelAxisOpts(
                dim=0,
                name="班级",
                type_="category",
                data=["301班", "302班", "303班"],
            ),
            opts.ParallelAxisOpts(dim=1, name="语文"),
            opts.ParallelAxisOpts(dim=2, name="数学"),
            opts.ParallelAxisOpts(dim=3, name="英语"),
            opts.ParallelAxisOpts(dim=4, name="政治"),
            opts.ParallelAxisOpts(dim=5, name="历史"),
            opts.ParallelAxisOpts(dim=6, name="地理"),
            opts.ParallelAxisOpts(
                dim=7,
                name="等级",
                type_="category",
                data=["优秀", "良好", "合格"],
            ),
        ]
    )
    .add("", data)
)
parallel.render('平行坐标图.html')

旭日图是一种特殊的饼图,能清晰地表达层级和从属关系,在pyecharts中我们使用Sunburst方法绘制。

数据可视化图表excel占比,pyecharts教程画折线图

旭日图示例

实现代码:

data = [
    {"name": "广东",
     "children": [
             {"name": "广州",
              "children": [
                  {"name": "天河区", "value": 55},
                  {"name": "越秀区", "value": 34},
                  {"name": "增城区", "value": 66},
              ]},
             {"name": "东莞",
              "children": [
                      {"name": "麻涌镇", "value": 156},
                      {"name": "望牛墩镇", "value": 134},
              ]},
             {"name": "汕头", "value": 87},
             {"name": "揭阳", "value": 23},
     ],
     },
    {"name": "*疆新**",
     "children": [
             {"name": "乌鲁木齐",
              "children": [
                  {"name": "五家渠", "value": 55},
                  {"name": "昌吉", "value": 78},
                  {"name": "呼图壁", "value": 34},
              ]},
             {"name": "阿克苏", "value": 67},
             {"name": "克拉玛依", "value": 34},
     ],
     },
    {"name": "重庆", "value": 235}
]
sunburst = (Sunburst()
            .add("", data_pair=data)
            )
sunburst.render('旭日图.html')

河流图是一种特殊的流图,主要用于表示事件或主题在某一时间段内的变化情况。

数据可视化图表excel占比,pyecharts教程画折线图

河流图示例

实现代码:

cate = ['meituan','zhifubao','weixin','taobao','jingdong','pinduoduo']
date_list = ["2021/10/{}".format(i + 1) for i in range(30)]
data = [[day, random.randint(10, 50), c] for day in date_list for c in cate]
river = (
    ThemeRiver()
    .add(
        series_name=cate,
        data=data,
        singleaxis_opts=opts.SingleAxisOpts(type_="time")
    )
)
river.render('河流图.html')

3D散点图,用于展现三维数据在空间中的分布情况。

数据可视化图表excel占比,pyecharts教程画折线图

3D散点图示例

实现代码:

data = [(random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)) for _ in range(100)]
scatter3D = (Scatter3D()
             .add("", data)
             )
scatter3D.render('3D散点图.html')

3D直方图,用于展示三维数据在空间中的分布情况。

数据可视化图表excel占比,pyecharts教程画折线图

3D直方图示例

实现代码:

data = [[i, j, random.randint(0, 100)] for i in range(24) for j in range(7)]
hour_list = [str(i) for i in range(24)]
week_list = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
bar3D = (
    Bar3D()
    .add(
        "",
        data,
        xaxis3d_opts=opts.Axis3DOpts(hour_list, type_="category"),
        yaxis3d_opts=opts.Axis3DOpts(week_list, type_="category"),
        zaxis3d_opts=opts.Axis3DOpts(type_="value"),
    )
)
bar3D.render_notebook()

以上就是这一期的全部内容,前三期内容笔者介绍了pyecharts库的一些图表的绘制方法,在这一系列的下一篇文章中笔者将介绍pyecharts库中各个函数的配置项,熟练的使用配置项才能创造一个真正属于自己的图表。请各位等待下一期更新。