Мне нужно реализовать довольно маленькие графики Pyqtgraph в графическом интерфейсе. При этом по умолчанию смещение метки axis ' слишком велико. Как установить смещение метки оси, а не отметок оси.
В следующем примере кода создается базовый график pyqtgraph. Мне удалось установить смещение текста галочки, но не только смещение текста метки. Я бы хотел, чтобы метки осей были ближе к оси.
import numpy as np
from pyqtgraph.Qt import QtGui, QtCore
import pyqtgraph as pg
app = QtGui.QApplication([])
x = np.linspace(0, 1, 10000)
y = np.linspace(350, 2500, 10000)
win = pg.GraphicsWindow()
plot = win.addPlot(x=x, y=y, title="Plot")
label_style = {'color': '#EEE', 'font-size': '14pt'}
plot.setLabel('bottom', "some x axis label", **label_style)
plot.setLabel('left', "some y axis label")
plot.getAxis('left').setLabel(**label_style)
font=QtGui.QFont()
font.setPixelSize(14)
plot.getAxis("bottom").tickFont = font
# Here I increased the tickTextOffset of the x axis
plot.getAxis("bottom").setStyle(tickTextOffset=50)
plot.getAxis("left").tickFont = font
plot.getAxis("left").setStyle(tickTextOffset=14)
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
Любая помощь очень ценится!
Обновление :
Я нашел внутреннее решение pyqtgraph в pyqtgraph.AxisItem.resizeEvent()
, но функция не принимает переданные аргументы.
def resizeEvent(self, ev=None):
#s = self.size()
## Set the position of the label
nudge = 5
br = self.label.boundingRect()
p = QtCore.QPointF(0, 0)
if self.orientation == 'left':
p.setY(int(self.size().height()/2 + br.width()/2))
p.setX(-nudge)
elif self.orientation == 'right':
p.setY(int(self.size().height()/2 + br.width()/2))
p.setX(int(self.size().width()-br.height()+nudge))
elif self.orientation == 'top':
p.setY(-nudge)
p.setX(int(self.size().width()/2. - br.width()/2.))
elif self.orientation == 'bottom':
p.setX(int(self.size().width()/2. - br.width()/2.))
p.setY(int(self.size().height()-br.height()+nudge))
self.label.setPos(p)
self.picture = None
соответствующая переменная nudge
. К сожалению, он недоступен или есть способ обойти resizeEvent()
без изменения исходного кода pyqtgraph?
В качестве предложения сделать nudge
сносным я создал проблему с pyqtgraph
GitHub: