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

来自维基百科

不过,我们仍然可以绘制出多维空间,今天就来用 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 图

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

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

python绘制3维图-1、2、3维图见过,用Python画出来的六维图见过么?相关推荐

  1. 编写代码、打印图4-2所示的图形python_Python之turtle库画各种有趣的图及源码(更新中)_一个超会写Bug的程序猿的博客-CSDN博客...

    原文作者:一个超会写Bug的安太狼 原文标题:Python之turtle库画各种有趣的图及源码(更新中) 发布时间:2021-02-09 03:35:11 Turtle库是Python语言中一个很流行 ...

  2. python绘制图形沙漏_pytorch-pose一个用于二维人体姿势估计的PyTorch工具包。 - pytorch中文网...

    pytorch-pose PyTorch-Pose是2D单人姿态估计的一般流水线的PyTorch实现.其目的是为最流行的人体姿态数据库(如MPII人体姿态,LSP和FLIC)提供训练/推理/评估的接口 ...

  3. Python画出来的六维图,见过么?

    我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面. 来自维基百科 不过,我们仍然可以绘制出多维空间,今天就来用 Python 的 p ...

  4. python绘制直方图的函数_(六)pyplot基础图表函数(学习笔记)|python数据分析与展示...

    1.pyplot基础图表函数概述 2.pyplot图饼的绘制 3.pyplot直方图的绘制 4.pyplot极坐标图的绘制 5.pyplot散点图的绘制 6.单元小结 [网页链接[Python数据分析 ...

  5. python绘制n阶科赫曲线线段_骚操作:用Python来一场人工造雪

    具体介绍 先给大家介绍科赫曲线,科赫曲线在众多经典数学曲线中非常著名,由瑞典数学家冯 科赫于1904年提出,由于其形态类似雪花,也被成为雪花曲线. 下面对科赫曲线基本概念和绘制方法做个简单的介绍:正整 ...

  6. python绘制直方图显示数字_python dataframe中各元素出现次数统计及画直方图

    比如: print(Counter(a[0])) Counter({'sausage': 825, 'whole milk': 717, 'frankfurter': 580, 'tropical f ...

  7. python 绘制折线图-怎样用python绘制折线图

    今天教大家用python绘制一些线性图案,需要的朋友可以借鉴参考一下. 画最简单的直线图 代码如下:import numpy as np import matplotlib.pyplot as plt ...

  8. 怎么用Python绘制这样的图?

    我是小z 最近看到一张图,感觉很酷炫,搜索得知是叫做弦图.看到很多用R语言绘制的案例,以及有Excel大佬用VBA也绘制了一个,简直不要太强. 那么,Python可以绘制吗?找了一圈发现有一个付费的第 ...

  9. 使用Python绘制6.1儿童节消消乐,素描图,词云图,字符画图,提取轮廓图及蒙太奇效果图

    这篇博客将介绍如何使用Python绘制6.1儿童节消消乐,素描图,词云图,字符画图,提取轮廓图及蒙太奇效果图. 使用Python绘制端午dragboat消消乐 美轮美奂的界面效果 1. 效果图 6.1 ...

最新文章

  1. 设置Eclipse中的tab键为4个空格的完整方法
  2. OpenCV 升降维度
  3. Android中使用GridView实现标签效果源码
  4. 四十一、深入Java中的 File类
  5. 用户Session相关模块重构
  6. css选择器的综合使用
  7. 【物联网智能网关-03】GPRS模块中文短信收发
  8. qrcode.js 二维码生成器
  9. [html] 当html中使用map标签时,area中coords值如何精确定位呢?
  10. ws flv连接播放得测试代码
  11. BZOJ.5093.[Lydsy1711月赛]图的价值(NTT 斯特林数)
  12. freeswitch 基于webrtc网页视频、语音通话官方例子video_demo安装
  13. wordpress主题The7汉化版支持在线更新免费下载
  14. 人脸识别,人脸识别门禁系统的原理
  15. 多媒体音箱选购指南--理论篇
  16. Linux socket跨局域网聊天和文件传输
  17. 互联网吞噬传统书店:全球大批书店倒闭
  18. Ajax 改造,第 3 部分: 用 jQuery、Ajax 选项卡和照片 carousel 改进现有的站点
  19. 如何用html制作田字格,WPS文字怎么制作田字格 WPS文字制作田字格的方法
  20. x射线mas_X射线视觉

热门文章

  1. Android分级部门选择界面(二)
  2. android studio 插件版本号和gradle版本号对应关系
  3. 我在Suse 11 Sp3上使用anaconda安装TensorFlow的过程记录
  4. centos6 升级gcc / 无法识别的命令行选项“-std=gnu++1y”的解决办法
  5. C语言中常用的数学公式
  6. android 常用类
  7. 聊聊大麦网UWP版的首页顶部图片联动效果的实现方法
  8. 构建高性能J2EE应用的五种核心策略
  9. 2012-5-3 线程和进程的区别
  10. 欧盟中止对中国数据卡产品“两反一保”调查