小编bin*_*nev的帖子

如何确定 matplotlib 轴对象的投影(2D 或 3D)?

在 Python 的 matplotlib 库中,很容易在创建时指定坐标区对象的投影:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
ax = plt.axes(projection='3d')
Run Code Online (Sandbox Code Playgroud)

但是如何确定现有轴对象的投影呢?没有ax.get_projectionax.properties不包含“投影”键,并且快速谷歌搜索没有发现任何有用的东西。

python 3d 2d projection matplotlib

4
推荐指数
1
解决办法
5808
查看次数

python pandas中的嵌套数据框/索引

目标

我正在尝试使用python pandas处理一些视频跟踪实验中的数据。我在结构上放置了多个点标记,并随时间跟踪了点的XY坐标。这些数据一起描述了测试过程中结构的形状。我在将数据安排到分层/嵌套DataFrame对象中时遇到麻烦。

导入数据

我的跟踪方法针对视频的每一帧输出每个点的X,Y坐标(和时间)。此数据存储在csv文件中,其中每个变量对应一列,每个视频帧对应一行:

t,x,y
0.000000000E0,-4.866015168E2,-2.116143012E0
1.000000000E-1,-4.866045511E2,-2.123012558E0
2.000000000E-1,-4.866092436E2,-2.129722560E0
Run Code Online (Sandbox Code Playgroud)

使用pandas.read_csv我能够将这些csv文件读入DataFrames,具有相同的列/行格式:

In [1]: pd.read_csv(point_a.csv)
Out[17]: 
     t           x         y
0  0.0 -486.601517 -2.116143
1  0.1 -486.604551 -2.123013
2  0.2 -486.609244 -2.129723
Run Code Online (Sandbox Code Playgroud)

到目前为止没有问题。

创建一个层次结构

我想合并上面DataFrame的几个(每个点一个),并创建一个DataFrame带有分层列的大型列,其中所有变量共享一个索引(视频帧)。请参阅下面的栏目point_apoint_b等等,与子栏为xyt。该shape列表示用于绘制结构形状的有用向量。

        |   point_a     |   point_b     |   point_c     |   shape
frames  |   x   y   t   |   x   y   t   |   x   y   t   | …
Run Code Online (Sandbox Code Playgroud)

python nested hierarchy dataframe pandas

4
推荐指数
1
解决办法
1597
查看次数

在matplotlib 3d图中移动刺?

我正在尝试在3D matplotlib轴对象中移动刺。

这似乎是一个非常简单的问题,但是我没有找到直接解决此问题的任何问题/答案。我在此问题的底部列出了我对该主题的研究列表。

我可以在matplotlib 2D图中设置棘刺的位置。如下代码:

import matplotlib.pyplot as plt, numpy as np

fig, axes = plt.subplots(1, 2)
r, theta = 1, np.linspace(0, 2*np.pi, 100)
x, y = r*np.cos(theta), r*np.sin(theta)
for ax in axes:  # plot the same data on both axes
    ax.plot(x, y)
    ax.set_aspect("equal")
for spine in ax.spines.values():  # adjust spines on last active axis 
    spine.set_position(("data", 0))
Run Code Online (Sandbox Code Playgroud)

产生: 超级病态的2D情节

但是,当我尝试使用3D轴进行相同操作时...

z = np.zeros(x.shape)  # exciting stuff
fig = plt.figure()
for i in range(2):  # create two 3D subplots
    ax = plt.subplot(1,2,i+1, …
Run Code Online (Sandbox Code Playgroud)

python 3d plot matplotlib

3
推荐指数
1
解决办法
1632
查看次数

使用鼠标缩放内联3D matplotlib图形*而无需*?

该问题说明了如何通过指定仰角和方位角来更改matplotlib中3D图的“摄像机位置”。ax.view_init(elev=10,azim=20), 例如。

有没有类似的方法可以通过数字指定图形的缩放比例-即不使用鼠标?

我唯一可以找到的相关问题是这个问题,但是公认的答案涉及安装另一个库,然后还需要使用鼠标进行缩放。

编辑:

为了清楚起见,我不是在谈论更改图形大小(使用fig.set_size_inches()或类似方法)。图形大小很好;问题在于所绘制的内容仅占图中的一小部分:

图片

python 3d plot zoom matplotlib

2
推荐指数
1
解决办法
1125
查看次数

标签 统计

python ×4

3d ×3

matplotlib ×3

plot ×2

2d ×1

dataframe ×1

hierarchy ×1

nested ×1

pandas ×1

projection ×1

zoom ×1