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 相关文章推荐
python抓取网页中的图片示例
Feb 28 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
Python实现批量读取word中表格信息的方法
Jul 30 Python
Python算法之图的遍历
Nov 16 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
python装饰器简介---这一篇也许就够了(推荐)
Apr 01 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
Aug 09 Python
利用Python复制文件的9种方法总结
Sep 02 Python
python socket 聊天室实例代码详解
Nov 14 Python
Python解压 rar、zip、tar文件的方法
Nov 19 Python
Pytorch高阶OP操作where,gather原理
Apr 30 Python
python中绕过反爬虫的方法总结
Nov 25 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
php基础知识:类与对象(2) 自动加载对象
2006/12/13 PHP
解析PHP 使用curl提交json格式数据
2013/06/29 PHP
php字符串截取函数用法分析
2014/11/25 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
javascript延时加载之defer测试
2012/12/28 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
JSONP跨域请求
2017/03/02 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
linux环境下python中MySQLdb模块的安装方法
2017/06/16 Python
Python实现快速傅里叶变换的方法(FFT)
2018/07/21 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
IRO美国官网:法国服装品牌
2018/03/06 全球购物
英国奢侈品概念店:Base Blu
2019/05/16 全球购物
中软Java笔试题
2012/11/11 面试题
2019年c语言经典面试题目
2016/08/17 面试题
德尔福集团DELPHI的笔试题
2012/02/22 面试题
十佳美德少年事迹材料
2014/02/05 职场文书
影视广告专业求职信
2014/09/02 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书
原告离婚代理词
2015/05/23 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python