打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
六维图见过么?Python 画出来了!

作者 | Prasad Ostwal

译者 | 高级农民工

我们的大脑通常最多能感知三维空间,超过三维就很难想象了。尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面。

来自维基百科

不过,我们仍然可以绘制出多维空间,今天就来用 Python 的 plotly 库绘制下三维到六维的图,看看长什么样。

数据我们使用一份来自 UCI 的真实汽车数据集,该数据集包括 205 个样本和 26 个特征,从中选择 6 个特征来绘制图形:

基础工作

安装好 plotly 包:

pipinstallplotly

加载数据集(文末会提供):

importpandasaspd
data=pd.read_csv('cars.csv')

下面我们先绘制基础的二维图表,使用两个 RPM 和 Speed 两个特征即可:


绘制 2-D 图

代码实现如下:

importplotly
importplotly.graph_objsasgo
#绘制散点图
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 图

接着还可以通过更改形状的方式增加第六个维度——车门数,圆形表示四车门,方形表示两车门。通常两个车门的都是昂贵的豪华跑车,在图中也可以看出方形主要集中在价格比较高的区域。

这样我们就从普通的二维图扩展到了高维图,当然还可以继续拓展,不过分辨起来会越来越困难。

源码:

链接链接

提取码:avl8

原文:

链接

【END】

这份礼物父母一定会喜欢!

95762人送过了都说好
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
用 Python 教你画花样图
使用Python Plotly库实现COVID-19数据可视化和动态地图制作
[数据可视化]绘制持仓榜单的“棒棒糖图”
漂亮的桑基图还能这么用!
Python也太好用了吧!一个plotly库就能实现交互式数据可视化
50 行 Python 代码绘制数据大屏,这个可视化框架真的太神了
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服