python 3维图形库_Python 绘制 3 维以上的高维图
实用技巧。
我们的大脑通常最多能感知三维空间,超过三维就很难想象了。尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面。不过,我们仍然可以绘制出多维空间,今天就来用 Python 的 plotly 库绘制下三维到六维的图,看看长什么样。
数据我们使用一份来自 UCI 的 真实汽车数据集 ,该数据集包括 205 个样本和 26 个特征,从中选择 6 个特征来绘制图形:
基础工作
安装好 plotly 包:
pip install plotly
加载数据集(文末会提供):
import pandas as pd
data = pd.read_csv("cars.csv")
下面我们先绘制基础的二维图表,使用两个 RPM 和 Speed 两个特征即可:
绘制 2-D 图
代码实现如下:
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 方法绘制三维图:
代码实现如下:
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)添加到原先的三维图中,用颜色深浅表示,这样就绘制出了四维图。可以看到当其他三个指标(马力、车身重量、车价格)越高时:车辆油耗是越少的。
绘制 5-D 图
基于这样的思想,我们还可以通过修改圆形大小再增加一个维度——发动机尺寸(engine-size)变成五维图:
我们仍然可以比较容易地地发现:车越贵,发动机尺寸越大这样的规律。
绘制 6-D 图
接着还可以通过更改形状的方式增加第六个维度——车门数,圆形表示四车门,方形表示两车门。通常两个车门的都是昂贵的豪华跑车,在图中也可以看出方形主要集中在价格比较高的区域。
这样我们就从普通的二维图扩展到了高维图,当然还可以继续拓展,不过分辨起来会越来越困难。
文中代码可以在后台回复: 6D 得到。
python 3维图形库_Python 绘制 3 维以上的高维图相关推荐
- python slice函数画高维图_Python 绘制 3 维以上的高维图
实用技巧. 我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面.不过,我们仍然可以绘制出多维空间,今天就来用 Python 的 plo ...
- python生成二维码_python生成二维码的实例详解
python生成二维码的实例详解 版本相关 操作系统:Mac OS X EI Caption Python版本:2.7 IDE:Sublime Text 3 依赖库 Python生成二维码需要的依赖库 ...
- python中遍历二维数组_python遍历二维数组-女性时尚流行美容健康娱乐mv-ida网
女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 二 维 数组 5.2.1 二 ...
- matlab建成二维数组,matlab绘制二维数组
hist 累计图 rose 极座标累计图 stairs 阶梯图 stem 针状图 fill 实心图 feather 羽毛图 compass 罗盘图 quiver 向量场图 Matlab 如何画出一个二 ...
- python画两条曲线图_python绘制多个曲线的折线图
这篇文章利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图: # -*- coding: UTF-8 -*- import numpy as np i ...
- python 3d绘图模块_Python绘制3D图形
3D图形在数据分析.数据建模.图形和图像处理等领域中都有着广泛的应用,下面将给大家介绍一下如何使用python进行3D图形的绘制,包括3D散点.3D表面.3D轮廓.3D直线(曲线)以及3D文字等的绘制 ...
- python二维数组排序_Python实现二维数组按照某行或列排序的方法【numpy lexsort】...
本文实例讲述了Python实现二维数组按照某行或列排序的方法.分享给大家供大家参考,具体如下: lexsort支持对数组按指定行或列的顺序排序:是间接排序,lexsort不修改原数组,返回索引. (对 ...
- python paramiko模块下载_Python自动化运维实战:使用Python管理网络设备
现在,我们已经知道如何在不同的操作系统中使用和安装Python以及如何使用EVE-NG搭建网络拓扑.在本章中,我们将学习如何使用目前常用的网络自动化库自动完成各种网络任务.Python可以在不同的网络 ...
- python输入二维数组_Python输入二维数组方法
Python输入二维数组方法 前不久对于Python输入二维数组有些不解,今日成功尝试,记以备忘.这里以输入1-9,3*3矩阵为例 n=int(input()) line=[[0]*n]*n for ...
- python多维字典_python定义多维字典
在python中默认的dict方法定义多维字典较为复杂 并不能直接通过a=dict() a['b']['c']['d'] = 1 >>> a['b']['c']['d']=1 Tra ...
最新文章
- 中介分析 相对直接效应 相对简介效应_中介效应分析方法和流程
- WCF服务创建与使用(双工模式)
- Leetcode-一篇帖子就够啦
- Git复习(四)之解决冲突
- BeautifulSoup库之find_all函数_Python系列学习笔记
- jQuery 请指出'$'和'$.fn'的区别?或者说出'$.fn'的用途。
- python实验练习-图书管理系统(使用文件来实现)
- WCF进阶:将编码后的字节流压缩传输
- 如何将javaWeb3.1+版本项目 降版本 更换jdk及tomcat
- 【IPM2020】一种处理多标签文本分类的新颖推理机制
- 文化艺术报新闻报道IT诗人(转)
- 阿里云张献涛:公共云不断向外延伸,一云多态是未来趋势
- 【期刊推荐】JCR1-4区推荐重点SCI期刊征稿中~
- 无线路由器的连接与设置
- 手把手教你做树莓派魔镜-MagicMirror(一)-准备工作
- 打开项目时,出现“确保已安装项目类型(.wdproj)的应用程序 ”的解决办法
- python 量化交易:MACD指标双金叉形态识别
- 【编程练习】3*3 的矩阵,值限定为1-9不重复,已知横竖的和,和一个斜着的值,求这个矩阵
- 拍掉灰尘,老想法比新想法更管用
- 实现shiro-remember功能
热门文章
- Atitit oracle新特性5 6 7 8 9 10 11 12 18 19 20 attilax总结 目录 1.1. :ora 20c	1 1.2. Oracle Database 19c 的
- atitit tag标签标示规范 attilax总结 v2 r922.docx
- Atiitt 使用java语言编写sql函数或存储过程
- atitit 项目注册功能算法attilax总结.docx
- Atitit 常用比较复杂的图像滤镜 attilax大总结
- Atitit 研发体系建立 数据存储与数据知识点体系知识图谱attilax 总结
- Atitit.木马病毒 webftp 的原理跟个设计
- paip.声音按键音延迟的解决
- paip.提升用户体验---提取FLASH中图片
- Rust:mod、crate、super、self、pub use等模块系统用法梳理