我的问题很简单,但我找不到答案,大家能帮我吗
请
问题是在python GUI pyqt5中,我想使用matplotlib
绘制3d轴,我发现函数matplotlib.pyplot和mpl_toolkit.mplot3d可以很好地完成,但pyqt5只能使用函数matplotlib.figure和matplotlib.backends.backend_qt5agg
然后:
在我的概念中,matplotlib.backends.backend_qt5agg仅使用二维轴绘制,不能旋转
如何将三维pyplot轴放置在pyqt5上
我的例子是:
import matplotlib.pyplot as plt
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
def spRDM_frame(self):
fig = Figure()
# note spRDM_Widget is the widget object on qt designer.
self.ui.spRDM_Widget.canvas = FigureCanvas(fig)
self.ui.spRDM_Widget.canvas.axes = self.ui.spRDM_Widget.canvas.figure.add_subplot(1,1,1, projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X ** 2 + Y ** 2)
Z = np.sin(R)
self.ui.spRDM_Widget.canvas.axes.plot(X,Y,Z)
self.ui.spRDM_Widget.canvas.draw()
在样本中,不是我想要的
如何更改pyqt5上的pyplot和设置
非常感谢大家
可以使用
Figure
容器在FigureCanvasQTAgg
画布上绘制三维轴。代码中的一个问题是axes3d.plot
期望x、y和z坐标的1D数组作为输入参数,但您提供的是2D数组。要使此代码正常工作,您需要使用类似axes3d.plot_surface
或axes3D.plot_wireframe
的内容,例如相关问题 更多 >
编程相关推荐