如何在mplot3d(matplotlib + python)中获取选定对象的属性?
引言
在数据可视化领域,我们通过画图进行探索性分析。matplotlib是一个针对Python用户的数据可视化工具包。其中mplot3d是matplotlib的一个子包,支持三维plotting。mplot3d不仅支持一般的3D图,也能创建等高线图,水密等高线图,3D scatter plot等高级形式。当我们需要获取选定对象的属性时,经常会犯愁。本篇文章将分享获取选定对象属性的方法。
正文
下面的示例将展示如何绘制一个包含两少元素的3D scatter plot,打印对象的属性。
(1) 导入模块
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
(2) 创建数据集
np.random.seed(123)
data = np.random.randint(low=0, high=50, size=(50,3)).tolist()
(3) 创建figure和axes对象,绘制3D scatter plot
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
xs = [x[0] for x in data]
ys = [x[1] for x in data]
zs = [x[2] for x in data]
ax.scatter(xs, ys, zs, c='r', marker='o')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()
运行上述代码后,将会绘制一个3D散点图。可以通过鼠标交互选中一个点。下面的示例将展示如何获取此处选中的对象的属性。
def onpick(event):
ind = event.ind[0]
x, y, z = event.artist._offsets3d
print('x={}, y={}, z={}'.format(x[ind], y[ind], z[ind]))
fig.canvas.mpl_connect('pick_event', onpick)
结论
以上是本文分享的在mplot3d(matplotlib + python)中获取选定对象的属性的方法。Python是一个非常强大的数据科学和数据可视化工具,适合进行各种数据分析,通过mplot3d包,可以快速地通过3D绘图来获得洞见,在进一步的数据探索中起到重要作用。