pymatplotlib-2 绘制3D盒子(pyqt)

pymatplotlib-2 绘制3D盒子

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

def showbox(data):  
    fig = plt.figure("pymatplotlib-2 绘制3D盒子") # 绘图设置
    ax = fig.gca(projection='3d')  # 三维坐标轴

    x, y, z = 0,0,0  #盒子坐标
    dx, dy, dz = data  #盒子长、宽、高
    ax.bar3d(x, y, z, dx, dy, dz, color="green",zsort='average',edgecolor='white',linewidth=0.5,alpha=1) 

    ax.set_xlabel('X')
    ax.set_ylabel('Y')
    ax.set_zlabel('Z')
    plt.show()

if __name__ == "__main__":
 	box = (1,2,3)
 	showbox(box)

效果图:
在这里插入图片描述如果将透明图改成0,可以变成线条图,

ax.bar3d(x, y, z, dx, dy, dz, color="green",zsort='average',edgecolor='red',linewidth=0.5,alpha=0)

效果图:
在这里插入图片描述
在pyqt中使用pymatplotlib展示3D图形

import sys
from Ui_box3D0 import Ui_box3D
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from PyQt5.QtWidgets import QApplication,QMainWindow,QGridLayout
from matplotlib import pyplot as plt

class mwindow(QMainWindow,Ui_box3D):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.initUI()
        self.showbox()

    def initUI(self):
        self.figure = plt.figure("pymatplotlib-2 绘制3D盒子") # 绘图设置
        self.ax = self.figure.gca(projection='3d')  # 三维坐标轴

        self.canvas = FigureCanvas(self.figure)         #增加画布
        self.verticalLayout.addWidget(self.canvas)          #将画布加入到groupBox中

    def showbox(self): 
        self.ax.clear() 
        self.ax.bar3d(0,0,0,self.spinBox_4.value(),self.spinBox_5.value(),self.spinBox_6.value(), color="green",zsort='average',edgecolor='white',linewidth=0.5,alpha=1) 
        self.ax.bar3d(0,0,0,self.spinBox.value(),self.spinBox_2.value(),self.spinBox_3.value(), color="green",zsort='average',edgecolor='red',linewidth=0.5,alpha=0) 

        self.canvas.draw()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = mwindow()
    w.show()
    sys.exit(app.exec_())

效果图:
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值