Python 画出来六维图

 更新时间:2019年07月26日 15:45:40   作者:Python大本营  
这篇文章主要介绍了Python 画出来六维图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


来自维基百科

我们的大脑通常最多能感知三维空间,超过三维就很难想象了。尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面。

不过,我们仍然可以绘制出多维空间,今天就来用 Python 的 plotly 库绘制下三维到六维的图,看看长什么样。

数据我们使用一份来自 UCI 的真实汽车数据集,该数据集包括 205 个样本和 26 个特征,从中选择 6 个特征来绘制图形:

基础工作

安装好 plotly 包:

pip install plotly

加载数据集(文末会提供):

import pandas as pd 
data = pd.read_csv("cars.csv")

下面我们先绘制基础的二维图表,使用两个 RPM 和 Speed 两个特征即可:

绘制 2-D 图

代码实现如下:

import plotly 
import plotly.graph_objs as go 
 
#绘制散点图 
fig1 = go.Scatter(x=data['curb-weight'], 
         y=data['price'], 
         mode='markers') 
 
#绘制布局 
mylayout = go.Layout(xaxis=dict(title="curb-weight"), 
           yaxis=dict( title="price")) 
 
#绘图 html 
plotly.offline.plot({"data": [fig1], 
           "layout": mylayout}, 
           auto_open=True)

保存为 html 文件打开可以生成交互界面,也可以保存为 png 图片。

下面增加特征来绘制三维图。

绘制 3-D 图

可以使用 plotly 的 plot.Scatter3D 方法绘制三维图:

代码实现如下:

fig1 = go.Scatter3d(x=data['curb-weight'], 
          y=data['horsepower'], 
          z=data['price'], 
          marker=dict(opacity=0.9, 
                reversescale=True, 
                colorscale='Blues', 
                size=5), 
          line=dict (width=0.02), 
          mode='markers') 
 
mylayout = go.Layout(scene=dict(xaxis=dict( title="curb-weight"), 
                yaxis=dict( title="horsepower"), 
                zaxis=dict(title="price")),) 
 
plotly.offline.plot({"data": [fig1], 
           "layout": mylayout}, 
           auto_open=True, 
           filename=("3DPlot.html"))

如何绘制更高维度的图呢?显然无法通过扩展坐标轴的形式,不过有个小技巧就是制造一个虚拟维度,可以用不同颜色、形状大小、形状类别来入手。这样就可以显示第四个维度了。

绘制 4-D 图

下面我们将第四个变量——车辆油耗(city-mpg)添加到原先的三维图中,用颜色深浅表示,这样就绘制出了四维图。可以看到当其他三个指标(马力、车身重量、车价格)越高时:车辆油耗是越少的。

绘制 5-D 图

基于这样的思想,我们还可以通过修改圆形大小再增加一个维度——发动机尺寸(engine-size)变成五维图:

我们仍然可以比较容易地地发现:车越贵,发动机尺寸越大这样的规律。

绘制 6-D 图

接着还可以通过更改形状的方式增加第六个维度——车门数,圆形表示四车门,方形表示两车门。通常两个车门的都是昂贵的豪华跑车,在图中也可以看出方形主要集中在价格比较高的区域。

这样我们就从普通的二维图扩展到了高维图,当然还可以继续拓展,不过分辨起来会越来越困难。

源码下载地址

原文链接:

https://medium.com/@prasadostwal/multi-dimension-plots-in-python-from-2d-to-6d-9a2bf7b8cc74

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • window11系统下Python3.11安装numpy库超详细教程

    window11系统下Python3.11安装numpy库超详细教程

    这篇文章主要给大家介绍了关于window11系统下Python3.11安装numpy库的相关资料,NumPy是Python的第三方扩展包,但它并没有包含在Python标准库中,因此您需要单独安装它,需要的朋友可以参考下
    2023-12-12
  • 详解使用pymysql在python中对mysql的增删改查操作(综合)

    详解使用pymysql在python中对mysql的增删改查操作(综合)

    本篇文章主要介绍了使用pymysql在python中对mysql的增删改查操作,通过pymysql向数据库进行查删增改,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • Python编程中的文件操作攻略

    Python编程中的文件操作攻略

    这篇文章主要介绍了Python编程中的文件操作攻略,包括打开关闭重命名删除等相关函数的使用,需要的朋友可以参考下
    2015-10-10
  • Python基于Tkinter的HelloWorld入门实例

    Python基于Tkinter的HelloWorld入门实例

    这篇文章主要介绍了Python基于Tkinter的HelloWorld入门实例,以一个简单实例分析了Python中Tkinter模块的使用技巧,需要的朋友可以参考下
    2015-06-06
  • simple-pytest 框架使用教程

    simple-pytest 框架使用教程

    simple-pytest框架主要参考了httprunner的yaml数据驱动部分设计思路,是基于Pytest + Pytest-html+ Log + Yaml + Mysql 实现的简易版接口自动化框架,这篇文章主要介绍了simple-pytest 框架使用指南,需要的朋友可以参考下
    2024-02-02
  • Python+PyQt5实现网口功能测试详解

    Python+PyQt5实现网口功能测试详解

    这篇文章主要为大家详细介绍了Python+PyQt5实现网口功能测试的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • Django与pyecharts结合的实例代码

    Django与pyecharts结合的实例代码

    这篇文章主要介绍了Django与pyecharts结合的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python中如何保留并查看关键字

    Python中如何保留并查看关键字

    保留关键字是Python语言中具有特殊含义和功能的词汇,这些词汇构成了Python的语法基础,下面就跟随小编一起来了解下Python中如何保留和查看这些关键字吧
    2025-04-04
  • 使用python实现抓取中国银行外汇牌价首页数据实现

    使用python实现抓取中国银行外汇牌价首页数据实现

    这篇文章主要为大家介绍了如何使用python实现抓取中国银行外汇牌价首页数据的实现示例,有需要的同学可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • Python OpenCV视频截取并保存实现代码

    Python OpenCV视频截取并保存实现代码

    这篇文章主要介绍了Python OpenCV视频截取并保存实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11

最新评论