Python 画出来六维图


Posted in Python onJuly 26, 2019

Python 画出来六维图

来自维基百科

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

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

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

Python 画出来六维图

基础工作

安装好 plotly 包:

pip install plotly

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

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

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

绘制 2-D 图

Python 画出来六维图

代码实现如下:

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 方法绘制三维图:

Python 画出来六维图

代码实现如下:

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)添加到原先的三维图中,用颜色深浅表示,这样就绘制出了四维图。可以看到当其他三个指标(马力、车身重量、车价格)越高时:车辆油耗是越少的。

Python 画出来六维图

绘制 5-D 图

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

Python 画出来六维图

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

绘制 6-D 图

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

Python 画出来六维图

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

原文链接:

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

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

Python 相关文章推荐
查看Django和flask版本的方法
May 14 Python
对pycharm 修改程序运行所需内存详解
Dec 03 Python
python之验证码生成(gvcode与captcha)
Jan 02 Python
python实现贪吃蛇小游戏
Mar 21 Python
python 调用钉钉机器人的方法
Feb 20 Python
利用Python半自动化生成Nessus报告的方法
Mar 19 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
解决os.path.isdir() 判断文件夹却返回false的问题
Nov 29 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
Python3如何在服务器打印资产信息
Aug 27 Python
selenium与xpath之获取指定位置的元素的实现
Jan 26 Python
django做form表单的数据验证过程详解
Jul 26 #Python
python用win32gui遍历窗口并设置窗口位置的方法
Jul 26 #Python
解决python中导入win32com.client出错的问题
Jul 26 #Python
Django CBV类的用法详解
Jul 26 #Python
把django中admin后台界面的英文修改为中文显示的方法
Jul 26 #Python
Python中利用LSTM模型进行时间序列预测分析的实现
Jul 26 #Python
django的model操作汇整详解
Jul 26 #Python
You might like
第八节 访问方式 [8]
2006/10/09 PHP
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
laravel数据库查询结果自动转数组修改实例
2021/02/27 PHP
javascript代码加载优化方法
2011/01/30 Javascript
jquery弹出层类代码分享
2013/12/27 Javascript
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
浅析JS获取url中的参数实例代码
2016/06/14 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
javascript self对象使用详解
2016/10/18 Javascript
nodejs分离html文件里面的js和css的方法
2019/04/09 NodeJs
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
VUE使用axios调用后台API接口的方法
2020/08/03 Javascript
[01:06:18]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第二场 1月26日
2021/03/11 DOTA
把django中admin后台界面的英文修改为中文显示的方法
2019/07/26 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
tensorflow实现将ckpt转pb文件的方法
2020/04/22 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
高街生活方式全球在线商店:AZBRO
2017/08/26 全球购物
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
全球在线商店:BerryLook
2019/04/14 全球购物
波兰在线香水店:Perfumy.pl
2019/08/12 全球购物
老师给学生的表扬信
2014/01/17 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
如何书写邀请函?
2019/06/24 职场文书
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL