x_values = np.linspace(-100, 100, n=51)
mapped_axis = IndexedAxis('bottom', mapping=x_values)
plot_item = pg.PlotItem(axisItems={'bottom': mapped_axis})
image_item =pg.ImageItem()
plot_item.addItem(image_item)import numpy as npimport pyqtgraph as pgfrom pyqtgraph.Qt import QtGui, QtCore
class IndexedAxis(pg.AxisItem): """ Axis where pixels are mapped using a numpy array """ def __init__(self, orientation, mapping=None, **kw): super(IndexedAxis, self).__init__(orientation, **kw) self.mapping = mapping self.fmt = "{:.02f}"
def tickStrings(self, values, scale, spacing): if self.mapping is None: return super(IndexedAxis, self).tickStrings(values, scale, spacing) # count values smaller than 0 labels = [] idx = np.array(values, dtype=np.int)-1 left_pad = np.count_nonzero(idx < 0) right_pad = np.count_nonzero(idx >= self.mapping.size) idx = np.compress(np.logical_and(idx>=0, idx< self.mapping.size), idx) labels.extend([""]*left_pad) labels.extend([self.fmt.format(v) for v in self.mapping[idx]]) labels.extend([""]*right_pad) return labels
app = QtGui.QApplication([])mw = QtGui.QMainWindowview = pg.GraphicsLayoutWidget()w1 = view.addPlot()
x_values = np.linspace(-100, 100)mapped_axis = IndexedAxis('bottom', mapping=x_values)plot_item = pg.PlotItem(axisItems={'bottom': mapped_axis})image_item =pg.ImageItem()plot_item.addItem(image_item)
w1.addItem(plot_item)import numpy as npfrom scipy import interpolate
# Generate some test data on an irregular gridirreg_xlabels = np.array([0,1,3,7])irreg_ylabels = np.array([0,2,5,9])irreg_data = np.outer(irreg_xlabels, irreg_ylabels)
# Choose the finest step size as our new pixel size# Will give best detail, but large image size!step_x = np.ediff1d(irreg_xlabels).min()step_y = np.ediff1d(irreg_ylabels).min()
# Function to generate interpolated values from our irregular gridf = interpolate.RectBivariateSpline(irreg_xlabels, irreg_ylabels, irreg_data)
# Generate new data on the regular gridxlabels = np.arange(irreg_xlabels[0], irreg_xlabels[-1] + step_x, step_x)ylabels = np.arange(irreg_ylabels[0], irreg_ylabels[-1] + step_y, step_y)data = f(xlabels, ylabels)