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视图之ORM数据库查询操作API的实例
Oct 27 Python
详解Python 装饰器执行顺序迷思
Aug 08 Python
python实现AES加密和解密
Mar 27 Python
Python实现计算长方形面积(带参数函数demo)
Jan 18 Python
Python3如何使用多线程升程序运行速度
Aug 11 Python
python+requests实现接口测试的完整步骤
Oct 27 Python
python接口自动化框架实战
Dec 23 Python
python中openpyxl和xlsxwriter对Excel的操作方法
Mar 01 Python
python 如何获取页面所有a标签下href的值
May 06 Python
Python下opencv使用hough变换检测直线与圆
Jun 18 Python
Python极值整数的边界探讨分析
Sep 15 Python
Python实现猜拳与猜数字游戏的方法详解
Apr 06 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数组总结篇(一)
2008/09/30 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
完美实现wordpress禁止文章修订和自动保存的方法
2014/11/03 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
js资料prototype 属性
2007/03/13 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
Vue集成Iframe页面的方法示例
2017/12/12 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
在vant中使用时间选择器和popup弹出层的操作
2020/11/04 Javascript
Python及PyCharm下载与安装教程
2017/11/18 Python
浅谈pycharm的xmx和xms设置方法
2018/12/03 Python
Python assert语句的简单使用示例
2019/07/28 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
C++是不是类型安全的
2014/02/18 面试题
应用英语专业自荐信
2014/01/26 职场文书
生日宴会主持词
2014/03/20 职场文书
作风建设整改方案
2014/10/27 职场文书
保送生自荐信范文
2015/03/26 职场文书
2016应届大学生自荐信模板
2016/01/28 职场文书