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下rrdtool模块的基本使用方法
Nov 13 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
解决Python中字符串和数字拼接报错的方法
Oct 23 Python
Python3实现简单可学习的手写体识别(实例讲解)
Oct 21 Python
python对list中的每个元素进行某种操作的方法
Jun 29 Python
django rest framework vue 实现用户登录详解
Jul 29 Python
python画微信表情符的实例代码
Oct 09 Python
Python爬取腾讯视频评论的思路详解
Dec 19 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
Apr 01 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
Apr 01 Python
python 深度学习中的4种激活函数
Sep 18 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 常用类汇总 推荐收藏
2010/05/13 PHP
PHP数组及条件,循环语句学习
2012/11/11 PHP
基于php-fpm 参数的深入理解
2013/06/03 PHP
php删除数组元素示例分享
2014/02/17 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
基于jquery插件实现常见的幻灯片效果
2013/11/01 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
2015/03/16 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
js如何编写简单的ajax方法库
2017/08/02 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
2018/09/07 jQuery
Redis使用watch完成秒杀抢购功能的代码
2018/05/07 Python
python 执行文件时额外参数获取的实例
2018/12/18 Python
在python中利用opencv简单做图片比对的方法
2019/01/24 Python
Django获取应用下的所有models的例子
2019/08/30 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
考研英语复习计划
2015/01/19 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
2016年乡镇七一建党节活动总结
2016/04/05 职场文书