来自维基百科

作者 |苏克1900

来源 | 高级农民工(ID:Mocun6)

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

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

(*本文仅代表作者观点,转载请联系原作者)

精彩推荐

比写代码更重要的是抓住下一个技术风口。6月AI技术福利,亚马逊、微软、BTA、滴滴、字节跳动、美团等一线公司大牛带你一起探索机器学习、数据分析、自然语言处理、知识图谱等热门技术领域的未来方向以及落地实践。

限免即将结束,速领~

推荐阅读:

你点的每个“在看”,我都认真当成了喜欢

六维图见过么?Python 画出来了相关推荐

  1. python slice函数画高维图_六维图见过么?Python 画出来了

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

  2. python画折线图详解-利用python画出折线图

    本文实例为大家分享了python画折线图的具体代码,供大家参考,具体内容如下 # encoding=utf-8 import matplotlib.pyplot as plt from pylab i ...

  3. 没错,你看到的这张图,我用Python画出来了!

         作者:爱学Python的C君      来源:CDA数据分析师  CDA数据分析师 出品   [导语]:今天我们教你用Python画出当下最火的疫情直观图,Python技术部分可以直接看第四 ...

  4. python画函数图象_用python画函数图像

    原博文 2020-03-12 15:11 − 上代码 import numpy as np import matplotlib.pyplot as plt def f(x): return x*x*x ...

  5. python三维图的坐标_六维图见过么?Python 画出来了

    作者 | Prasad Ostwal 译者 | 高级农民工 我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面. 来自维基百科 不过, ...

  6. python绘制3维图-1、2、3维图见过,用Python画出来的六维图见过么?

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

  7. 六维图见过么?Python 画出来了!

    作者 | Prasad Ostwal 译者 | 高级农民工 我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面. 来自维基百科 不过, ...

  8. python 六维图_六维图见过么?Python 画出来了!

    做者 | Prasad Ostwalpython 译者 | 高级农民工程序员 咱们的大脑一般最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,因此大多数状况下都使用二维平面.面试 ...

  9. 用python画漂亮图-零基础用 Python 画图表,让你的论文更美观

    曾经我在高中的时候有一篇数学探索的小作业,其中我需要画出一张比较复杂的函数图.由于 X 和 Y 的坐标轴标签都需要一定的自定义,所以微软 Office 自带的画图工具自然无法满足我的要求.经过一段时间 ...

最新文章

  1. 详细故障排除步骤:针对 Azure 中到 Windows VM 的远程桌面连接问题
  2. javascript 水平文字垂直滚动
  3. Apache Common HttpClient使用之七种武器
  4. java远程下载文件到本地_java远程下载文件到本地
  5. 第一次接广告的心得,关于广告我怎么看
  6. 【Linux】一步一步学Linux系统编程教程汇总(暂时暂停更新......)
  7. sensor曝光量和曝光行的区别_拼多多新手商家怎样快速提高曝光量?
  8. spring使用JdbcTemplate和jdbcDaosupport及具名参数使用
  9. swift获取图片像素颜色值
  10. qcc3020定制、qcc3020软件开发tws耳机的注意事项
  11. 计算机网络基础 习题,计算机网络基础练习题集.pdf
  12. 【ThinkPHP】后台数组,赋值到前台模板HTML文件中的JS的变量,且以JSON对象形式存放
  13. 使用Python批量解压缩文件(zip,rar)
  14. 2017-01-27-一句话木马原理详解
  15. mysql error 1213_webgame中Mysql Deadlock ERROR 1213 (40001)错误的排查历程
  16. NOIP2015斗地主
  17. PAC学习理论:机器学习那些事
  18. c语言小蜜蜂编程题,小蜜蜂 pascal程序
  19. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
  20. html复习第四课(2_34_0924_html)

热门文章

  1. HEVC参考软件HM源码分析--帧间预测(1)--xCompressCU
  2. 原生or HTML5
  3. 汽车之家 php,demo.php · 放屁大亨。/PHP爬取汽车之家数据 - Gitee.com
  4. 【t056】智力问答(multiset做法)
  5. WPF技术触屏上的应用系列(一): 3D 图片(照片)墙、柱面墙(凹面墙或者叫远景墙、凸面墙或者叫近景墙)实现
  6. XenServer假死状态
  7. Float Point Exception
  8. Network: use `--host` to expose
  9. 2022-07-20 Android 11 SELinux avc 修改sys目录下面某个节点的权限
  10. 计算机文件目录格式书写,关于毕业论文书写格式 论文目录格式模板