mirror of
https://github.com/fatiando/moulder.git
synced 2025-12-21 10:31:09 +08:00
Initial Commit
This commit is contained in:
95
figure_canvas.py
Normal file
95
figure_canvas.py
Normal file
@@ -0,0 +1,95 @@
|
||||
from __future__ import print_function
|
||||
from future.builtins import super
|
||||
|
||||
import os
|
||||
import sys
|
||||
import numpy
|
||||
import matplotlib
|
||||
from matplotlib.figure import Figure
|
||||
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg
|
||||
from PyQt5.QtGui import QIcon
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtWidgets import QSizePolicy, QMainWindow, QApplication, QAction
|
||||
from PyQt5.QtWidgets import QMenu, QWidget, QVBoxLayout, QMessageBox
|
||||
from PyQt5.QtWidgets import QSlider, QHBoxLayout, QLabel, QDialog
|
||||
from PyQt5.QtWidgets import QDialogButtonBox
|
||||
|
||||
|
||||
class GravityModelCanvas(FigureCanvasQTAgg):
|
||||
|
||||
def __init__(self, parent=None, width=5, height=4, dpi=100):
|
||||
self.fig = Figure(figsize=(width, height), dpi=dpi)
|
||||
super().__init__(self.fig)
|
||||
self.setParent(parent)
|
||||
|
||||
self._x, self._z = None, None
|
||||
self._min_depth, self._max_depth = 0., 35000.
|
||||
|
||||
self.predicted = None
|
||||
self.data = None
|
||||
self.polygons = None
|
||||
|
||||
self._plotted = False
|
||||
|
||||
FigureCanvasQTAgg.setSizePolicy(self,
|
||||
QSizePolicy.Expanding,
|
||||
QSizePolicy.Expanding)
|
||||
FigureCanvasQTAgg.updateGeometry(self)
|
||||
|
||||
@property
|
||||
def x(self):
|
||||
return self._x
|
||||
|
||||
@x.setter
|
||||
def x(self, new_value):
|
||||
self._x = new_value
|
||||
|
||||
@property
|
||||
def z(self):
|
||||
return self._z
|
||||
|
||||
@z.setter
|
||||
def z(self, new_value):
|
||||
self._z = new_value
|
||||
|
||||
@property
|
||||
def min_depth(self):
|
||||
return self._min_depth
|
||||
|
||||
@min_depth.setter
|
||||
def min_depth(self, new_value):
|
||||
self._min_depth = new_value
|
||||
|
||||
@property
|
||||
def max_depth(self):
|
||||
return self._max_depth
|
||||
|
||||
@max_depth.setter
|
||||
def max_depth(self, new_value):
|
||||
self._max_depth = new_value
|
||||
|
||||
def update_plot(self):
|
||||
if self._plotted:
|
||||
pass
|
||||
else:
|
||||
self._figure_setup()
|
||||
|
||||
def _figure_setup(self, **kwargs):
|
||||
self.dataax, self.modelax = self.fig.subplots(2, 1, sharex=True)
|
||||
if self.data is not None:
|
||||
self.data_line, = self.dataax.plot(self.x, self.data, '.k')
|
||||
self.dataax.set_ylabel('Gravity anomaly [mGal]')
|
||||
self.dataax.set_xlim(self.x.min(), self.x.max())
|
||||
self.dataax.set_ylim((-200, 200))
|
||||
self.dataax.grid(True)
|
||||
self.modelax.set_xlabel('x [m]')
|
||||
self.modelax.set_xlim(self.x.min(), self.x.max())
|
||||
self.modelax.set_ylim(self.min_depth, self.max_depth)
|
||||
self.modelax.grid(True)
|
||||
self.modelax.invert_yaxis()
|
||||
self.modelax.set_ylabel('z [m]')
|
||||
self.fig.subplots_adjust(top=0.95, left=0.1, right=0.95, bottom=0.1,
|
||||
hspace=0.1)
|
||||
self.figure = self.fig
|
||||
self.canvas = self.fig.canvas
|
||||
self.fig.canvas.draw()
|
||||
Reference in New Issue
Block a user