1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
class Fenetre(QWidget):
def __init__(self):
QWidget.__init__(self)
self.setWindowTitle("Ma fenetre")
self.layout = QVBoxLayout()
self.fig = plt.figure()
self.axes = self.fig.gca(projection="3d")
self.canvas = FigureCanvas(self.fig)
self.layout.addWidget(self.canvas) # Le canvas matplotlib
self.axes.set_xlabel("X")
self.axes.set_ylabel("Y")
self.axes.set_zlabel("Z")
x1=np.linspace(-1,0,20)
x2=np.linspace(0,1,20)
z=np.linspace(-2,2,20)
Xc1,Zc=np.meshgrid(x1, z)
Yc1 = np.sqrt(1-Xc1**2)
Xc2,Zc=np.meshgrid(x2,z)
Yc2=np.sqrt(1-Xc2**2)
surf1=self.axes.plot_surface(Xc1,Yc1,Zc,alpha=0.2,color='r')
surf2=self.axes.plot_surface(Xc1,-Yc1,Zc,alpha=0.2,color='b')
surf3=self.axes.plot_surface(Xc2,Yc2,Zc,alpha=0.2,color='g')
surf4=self.axes.plot_surface(Xc2,-Yc2,Zc,alpha=0.2,color='k')
self.canvas.draw()
self.setLayout(self.layout)
self.show()
app = QApplication.instance()
if not app:
app = QApplication(sys.argv)
fen = Fenetre()
app.exec_() |
Partager