python绘制气泡图

目录

前言

气泡图的绘制

气泡图适用于什么数据?

图形效果

首先导入所需要的库

导入数据

查看数据是否有问题

提取出要进行对比的数据

绘制气泡图


前言

气泡图是一种多变量图表,是散点图的变体,也可以认为是散点图和百分比区域图的组合。

气泡图与散点图相似,不同之处在于,气泡图允许在图表中额外加入一个表示大小的变量。实际上,这就像以二维方式绘制包含三个变量的图表一样。气泡由大小不同的标记(指示相对重要程度)表示。

气泡图的绘制

气泡图适用于什么数据?

气泡图通常用于比较和展示不同类别圆点(这里我们称为气泡)之间的关系,通过气泡的位置以及面积大小。从整体上看,气泡图可用于分析数据之间的相关性。

需要注意的是,气泡图的数据大小容量有限,气泡太多会使图表难以阅读。但是可以通过增加一些交互行为弥补:隐藏一些信息,当鼠标点击或者悬浮时显示,或者添加一个选项用于重组或者过滤分组类别。

图形效果

python绘制气泡图_第1张图片

首先导入所需要的库

import pandas as pd
import pyecharts.options as opts
from pyecharts.charts import Scatter

Pandas是python第三方库,提供高性能易用数据类型和分析工具。Pandas基于NumPy实现,常与NumPy和Matplotlib一同使用。

Scatter函数可以非常方便地绘制两个数值型变量的散点图。

导入数据

data = pd.read_excel(r'航空公司数据-剔除空年龄.xlsx')

python绘制气泡图_第2张图片

 以航空公司数据为例,分析年龄,飞行次数,最大乘机时间间隔之间的关系

查看数据是否有问题

data_select = data.loc[:100,['年龄','飞行次数','最大乘机时间间隔']]
data_select.isnull().sum()

python绘制气泡图_第3张图片

loc[]切片:使用.loc[ ]第一个参数是行索引,第二个参数是列索引

pandas库中有一个isnull()函数,它可以用来判断缺失值

*如果数据有异常值需要对数据进行处理

提取出要进行对比的数据

x = data_select['飞行次数'].tolist()
y = data_select['最大乘机时间间隔'].tolist()
z = data_select['年龄'].tolist()

python绘制气泡图_第4张图片

.tolist()函数可以将数组或矩阵转换为列表,它的返回值以list的形式出现

绘制气泡图

color_range = ['#ffcc00','#ff7f00','#ff0000']
c = (
    Scatter(init_opts=opts.InitOpts(width="800px", height="400px"))
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(
            type_="value", 
            splitline_opts=opts.SplitLineOpts(is_show=True),
            name = '飞行次数', # 坐标轴名称
            name_location = 'center',
            name_gap = 30
        ),
        yaxis_opts=opts.AxisOpts(
            type_="value",
            splitline_opts=opts.SplitLineOpts(is_show=True),
            name = '最大乘机时间间隔',
            name_location = 'center',
            name_gap = 30
        ),
        legend_opts = opts.LegendOpts(pos_top='5%'), # 图示位置
    )
)
for i,j,q in zip(x,y,z):
    c.add_xaxis(xaxis_data = [i]) 
    c.add_yaxis(
        series_name='气泡大小:年龄', # 巧用序列名称和图示来提示气泡大小的含义
        y_axis = [j],
        symbol_size = q//3, # 根据年龄数据定义合适的气泡大小
        color = 'rgb(125,180,150)'
    )
c.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
c.render_notebook()

python绘制气泡图_第5张图片

上述应用了matplotlib模块中的scatter函数绘制了气泡图,气泡的大小代表了年龄

xAxis代表坐标系中的x轴 ,yAxis代表坐标系中的y轴

type:坐标轴类型,'value'—数据轴、'time'—时间轴、'log'—对数轴、'category'—类目轴

name:坐标轴名称

nameLocation:坐标轴名称的位置

for in zip():并行遍历,zip()函数可以将多个序列打包在一起,然后同时遍历它们

label_opts:标签配置项

color:配置颜色

is_show:是否显示标签(True 、Flase)

你可能感兴趣的:(信息可视化,python,开发语言)