来自维基百科

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

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

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

python 六维图_Python 画出来六维图相关推荐

  1. python画出的图_Python 画出来六维图

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

  2. python画k线图_python画k线图

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! import datetime import pandas_datareader ...

  3. 这图怎么画| 相关性热图+柱状图

    heatmap_barplot 写在前面 [这图怎么画]系列的图都来自VIP群里同学的提问.推文只是对图片的复现,不代表作者对图片展现形式的认同.欢迎同学们在群里分析有意思的图片. 本期图片 ❝ Ti ...

  4. 这图怎么画| 3D曲面图(3d surface plots)

    3d 写在前面 [这图怎么画]系列的图都来自VIP群里同学的提问.推文只是对图片的复现,不代表作者对图片展现形式的认同.欢迎同学们在群里分析有意思的图片. 本期图片 Zhou Z, Zhou X, C ...

  5. python能画k线图吗_python画k线图(一天的k线图怎么画)

    1.大智慧软件在日线窗口的左上角标有主图的公式名称,(如ma sar bbi )等, 如果不是ma指标,请输入ma,回车.2.如果输入ma后还是没有均线,请按 f7 键,弹出 最好能举个例子的.非常感 ...

  6. python画时间序列图折线图_python画时间序列散点图

    在运维管理中,经常遇到时间序列的数据,比如网卡流量.在线用户数.并发连接数,等等.用散点图可以直观的查看数据的分布情况. matplotlib模块的pyplot有画散点图的函数,但是该函数要求x轴是数 ...

  7. Python画图实战之画K线图【附带自动下载股票数据】

    关于Python画图的基本知识可以先查看下面这篇文章Python画图(直方图.多张子图.二维图形.三维图形以及图中图)https://blog.csdn.net/weixin_41896770/art ...

  8. python做k线图_python做k线图(15分钟k线的意义)

    北大荒... 大家对图中的巨量高开涨停是什么理解的... 庄家最后的出 日k线图又称阴阳烛,最初是日本米商用来表示米价涨跌状况的工具,后来引入股市,并逐渐风行于东南亚地区.k线图以其直观.立体感强的特 ...

  9. python 画k线图_matplotlib画k线图

    画k线需要的包和环境: python36 import tushare as ts import re import matplotlib.pyplot as plt import mpl_finan ...

最新文章

  1. We cannot activate inspection type for article master in transaction code MM41?
  2. linux 中文乱码问题的解决方法
  3. C#刷遍Leetcode面试题系列连载(1) - 入门与工具简介
  4. uboot源码——汇编阶段的start.S文件
  5. python2.7出现的错误
  6. mysql 表上线_腾讯云上线数据库 MySQL 8.0 版
  7. Spring Boot 核心原理与源码解析 - 目录
  8. zabbix修改tomcat监控端口
  9. python中使用连续关系运算符_解释一下Python中的关系运算符
  10. python基础语法总结(超详细)
  11. 计算机桌面为什么没有语言栏了,电脑还原桌面的时候语言栏里怎么什么都没有了,只有到打字的时候才显示 ,这是为什么啊...
  12. 用python来开发webgame服务端(3)
  13. 七牛云上传的视频通过外链播放黑屏问题
  14. APM2.8 Rover 自动巡航车设计(硬件连接)
  15. HTML体育新闻案例
  16. web课程设计:网上商城系统
  17. win10莫名奇妙的卡死、小问题解决方案
  18. 安全沙箱技术赋能企业转型,提效200%!
  19. vulnhub刷题记录(The Planets: Earth)
  20. PHP开发环境的搭建

热门文章

  1. 华为笔记本MateBook 14s 2021款升级后,突然不能面部识别解锁
  2. 如何保证微服务下的数据一致性?
  3. MySQL入门-day03-SQL查询
  4. ChatGPT使用案例之画思维导图
  5. web制作圆角边框及字体引入
  6. 小米9,我连抢4场失败,蓝厂IQOO一次成功,还有MIUI和VIVO那啥系统的体验对比
  7. 题解 | #[USACO 2012 Mar S]Flowerpot#
  8. 与MS SqlServer服务器 建立连接后,查询数据时发生-指定的网络名不再可用错误-The specified network name is no longer available
  9. 日更100天(49)每天进步一点点
  10. 导出多个表格到EXCEL或者ET的JavaScript代码