Python数据可视化:制作3D散点图和气泡图

目录

前言

一、制作3D散点图

1、3D散点图的特点

2、导入数据

3.数据筛选

 4.生成3D散点图

 二、制作气泡图

1.气泡图的特点

2.导入数据

 3.数据筛选

 4.生成气泡图

总结


前言

在对数据进行分析的时候,经常需要将数据进行可视化,以方便我们对数据的认识和理解,所以接下来是对"3D散点图" 和 "气泡图"进行讲解。


一、制作3D散点图

1、3D散点图的特点

3D散点图就是使复杂的数据让人简单易懂,通过3个序列的数据来绘制,描述3个序列数据之间的关系。

2、导入数据

把需要制作成3D散点图的数据导入到python的pandas库中

import pandas as pd
data = pd.read_excel(r'气泡图作业数据-商品销量(2).xlsx')
data

运行结果

3.数据筛选

 把导入的 气泡图作业数据-商品销量(2).xlsx 数据进行筛选

data_select = data.loc[:100,['牛奶','面包','辣条']]
x = data_select['牛奶'].tolist()
y = data_select['面包'].tolist()
z = data_select['辣条'].tolist()
[[i,j,k] for i,j,k in zip(x,y,z)]

 运行结果

 4.生成3D散点图

运行代码

import pyecharts.options as opts
from pyecharts.charts import Scatter3D  # 将制作3D散点图需要用到的库包导入
c = (
    Scatter3D()
    .add(
        '',
        data = [[i,j,k] for i,j,k in zip(x,y,z)], # 数据:二维数组
        
        xaxis3d_opts=opts.Axis3DOpts( # x轴配置
            name='牛奶',
            type_="value",
        ),
        yaxis3d_opts=opts.Axis3DOpts( # y轴配置
            name='面包',
            type_="value",
        ),
        zaxis3d_opts=opts.Axis3DOpts( # z轴配置
            name='辣条',
            type_="value",
        ),
    )
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(
                max_= max(z),
                range_color=[
                    "#1710c0",
                    "#0b9df0",
                    "#00fea8",
                    "#00ff0d",
                    "#f5f811",
                    "#f09a09",
                    "#fe0300",
                ],
        ),
    )
)
c.render_notebook()

 运行结果 生成3D散点图

牛奶、面包、辣条的销量数据3D散点图:

除此之外,我们还可以通过更改range_color 部分的代码中的颜色,以达到更美观的效果。

其他部分可以参考下方的社区链接进行修改

社区链接:https://gallery.pyecharts.org/#/Scatter3D/scatter3d

 二、制作气泡图

1.气泡图的特点

气泡图的数据结构和3D散点图一致,在散点图的基础上再加了一个维度的数据,用来描述点的大小。还可以查看死三个维度的数据(气泡的大小)和x轴、y轴数据的关系。

2.导入数据

把经过剔除的数据导入

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

运行结果

 3.数据筛选

将导入的 航空公司数据-剔除空年龄.xlsx 数据 进行筛选

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

运行结果

 4.生成气泡图

1.定义x y z

用x y z 分别对 '飞行次数' 、'最大成绩时间间隔'、'年龄' 进行定义

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

2.运行代码

气泡图的语法重点在于把画气泡图看作是在同一个坐标系中画很多个大小不一的散点图。            所以从代码结构上看,气泡图实际上需要重复很多个add_xaxis和add_yaxis的步骤,并且每一次画图时的symbol_size是不同的。

import pyecharts.options as opts
from pyecharts.charts import Scatter   #导入相关库

# color_dict={4:'#ffcc00',5:'#ff7f00',6:'#ff0000'}
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 = '#ff8080'
    )
c.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
c.render_notebook()

运行结果 生成气泡图

用户年龄气泡图:

总结

今天分享为以上的全部内容,让更多的人了解如何用可视化制作图形,希望能都帮助到大家。

物联沃分享整理
物联沃-IOTWORD物联网 » Python数据可视化:制作3D散点图和气泡图

发表评论