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 相关文章推荐
python3中zip()函数使用详解
Jun 29 Python
Django中的Model操作表的实现
Jul 24 Python
Python 内置变量和函数的查看及说明介绍
Dec 25 Python
Python for循环通过序列索引迭代过程解析
Feb 07 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 Python
Python docutils文档编译过程方法解析
Jun 23 Python
使用已经得到的keras模型识别自己手写的数字方式
Jun 29 Python
Python直接赋值及深浅拷贝原理详解
Sep 05 Python
python关于倒排列的知识点总结
Oct 13 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 Python
Python机器学习实战之k-近邻算法的实现
Nov 27 Python
JAVA SpringMVC实现自定义拦截器
Mar 16 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 向访客和爬虫显示不同的内容
2009/11/09 PHP
php方法调用模式与函数调用模式简例
2011/09/20 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
自己动手写的jquery分页控件(非常简单实用)
2015/10/28 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
react路由配置方式详解
2017/08/07 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
微信小程序API—获取定位的详解
2019/04/30 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
理解Python中的绝对路径和相对路径
2017/08/30 Python
python中sys.argv函数精简概括
2018/07/08 Python
Python 读写文件的操作代码
2018/09/20 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
实例讲解Python中浮点型的基本内容
2019/02/11 Python
Python实现计算文件MD5和SHA1的方法示例
2019/06/11 Python
django 单表操作实例详解
2019/07/30 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
工程监理应届生求职信
2013/11/09 职场文书
JAVA程序员自荐书
2014/01/30 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
企业环保标语
2014/06/10 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书
关于随地扔垃圾的检讨书
2014/09/30 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
深入讲解数据库中Decimal类型的使用以及实现方法
2022/02/15 MySQL