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基础教程之popen函数操作其它程序的输入和输出示例
Feb 10 Python
Python中optparse模块使用浅析
Jan 01 Python
简单介绍Python中用于求最小值的min()方法
May 15 Python
Python 常用的安装Module方式汇总
May 06 Python
python中requests使用代理proxies方法介绍
Oct 25 Python
python模拟事件触发机制详解
Jan 19 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
Jun 27 Python
linux环境下Django的安装配置详解
Jul 22 Python
django+echart数据动态显示的例子
Aug 12 Python
python实现代码统计程序
Sep 19 Python
Python selenium爬取微博数据代码实例
May 22 Python
Python实战之用tkinter库做一个鼠标模拟点击器
Apr 27 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
图解上海144收音机
2021/03/02 无线电
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
PHP中文竖排转换实现方法
2015/10/23 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
javascript 事件处理程序介绍
2012/06/27 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
JavaScript省市联动实现代码
2014/02/15 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
2015/12/28 Javascript
require.js中的define函数详解
2017/07/10 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
Python 获取当前所在目录的方法详解
2017/08/02 Python
python科学计算之narray对象用法
2019/11/25 Python
python分布式计算dispy的使用详解
2019/12/22 Python
Python实现仿射密码的思路详解
2020/04/23 Python
详解python logging日志传输
2020/07/01 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
印度尼西亚在线时尚购物网站:ZALORA印尼
2016/08/02 全球购物
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
写演讲稿要注意的六件事
2014/01/14 职场文书
元旦红领巾广播稿
2014/02/19 职场文书
庆国庆国旗下讲话稿2014
2014/09/21 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
2014党支部对照检查材料思想汇报
2014/10/05 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
幼儿园大班开学寄语(2015秋季)
2015/05/27 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
用Python实现屏幕截图详解
2022/01/22 Python
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js
使用Ajax实现进度条的绘制
2022/04/07 Javascript
PostgreSQL怎么创建分区表详解
2022/06/25 PostgreSQL