实用技巧。

我们的大脑通常最多能感知三维空间,超过三维就很难想象了。尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面。不过,我们仍然可以绘制出多维空间,今天就来用 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 图

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

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

文中代码可以在后台回复: 6D 得到。

python绘制3维图-Python 绘制 3 维以上的高维图相关推荐

  1. python绘制3维图-Python 画出来六维图

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

  2. python slice函数画高维图_Python 绘制 3 维以上的高维图

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

  3. Python 绘制 3 维以上的高维图!

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

  4. python绘制三维曲面图-python中Matplotlib实现绘制3D图的示例代码

    Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...

  5. Python 数据分析三剑客之 Matplotlib(十):3D 图的绘制

    CSDN 课程推荐:<Python 数据分析与挖掘>,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务.曾与联想.亨氏.网 ...

  6. Python 数据分析三剑客之 Matplotlib(九):极区图 / 极坐标图 / 雷达图的绘制

    CSDN 课程推荐:<Python 数据分析与挖掘>,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务.曾与联想.亨氏.网 ...

  7. python绘制花朵图案_Python实现平行坐标图的绘制(plotly)方式

    平行坐标图简介 当数据的维度超过三维时,此时数据的可视化就变得不再那么简单.为解决高维数据的可视化问题,我们可以使用平行坐标图.以下关于平行坐标图的解释引自百度百科:为了克服传统的笛卡尔直角坐标系容易 ...

  8. python生成热度图_Python 绘制热度图(seaborn)

    原博文 2020-05-08 15:16 − 进行数据处理时,对于数据的可视化展示可以更好的表现数据的关系 论文中,漂亮的热度图会让人眼前一亮 Seaborn 中的 heatmap就可以用来创建热度图 ...

  9. Python 与金融科技3|数据的重采样与蜡烛图(K线图)的绘制

    本期我们将共同学习如何将数据进行重采样仪减小数据的规模.另外我们还将学习如何绘制数据的蜡烛图(K线图)以及使用颜色填充折线图的方法. 前言 在这个系列中,我们将共同学习如何借助Python这个强大的工 ...

最新文章

  1. 使用Python,OpenCV进行形态学操作
  2. python判断 t1 树是否有与 t2 树拓扑结构完全相同的子树
  3. Python取top N相关的模块:heapq模块
  4. MaxCompute 2.0—从ODPS到MaxCompute
  5. 而立之年,不拼体力的我们应该关注什么?
  6. 全国计算机等级考试题库二级C操作题100套(第74套)
  7. 吴恩达深度学习2.1笔记_Improving Deep Neural Networks_深度学习的实践层面
  8. SPD中赋值连接字段
  9. 防范ARP网关欺骗, ip mac双向绑定脚本
  10. jvm执行java大致采用过程_java练习题
  11. Oracle用户管理命令
  12. 仿Windows画板喷漆笔刷效果
  13. 系统安全漏洞扫描绝佳助手之Nmap详解(转)
  14. 8款能让打工人效率原地飞起的神仙软件,含泪公开
  15. 群论基础速成(6):五大著名群族
  16. 神经网络——IoU & NMS 正负样本均衡
  17. 金融量化-金叉和死叉
  18. Handlebars的使用方法及技巧
  19. 微信指数和其他平台的微指数有什么区别
  20. 【错误记录】Android 应用导入 ijkplayer 报错 ( uses-sdk:minSdkVersion 19 cannot be smaller than version 21 decl )

热门文章

  1. Intel 的 MKL是可以用来训练的——官方的实验也提到了训练
  2. 一些开源搜索引擎实现——倒排使用原始文件,列存储Hbase,KV store如levelDB、mongoDB、redis,以及SQL的,如sqlite或者xxSQL...
  3. CICS FILE OPEN
  4. 用Java创建JMeter变量 - 终极指南
  5. 数据库系统概念—学习笔记1
  6. 一个简单的PHP模板引擎
  7. Android 腾讯入门教程( 智能手表UI设计 和 MVC模式 )
  8. C#开发微信门户及应用(5)--用户分组信息管理
  9. 写给想当程序员的朋友
  10. 每天OnLineJudge 之 “杨辉三角 ”