Rcparams не применяется к пользовательскому классу matplotlibPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Rcparams не применяется к пользовательскому классу matplotlib

Сообщение Anonymous »

Я пытаюсь написать собственный класс фигур на основе matplotlib.figure.Figure, который, среди прочего, автоматически применяет правильное форматирование. Вот текущая конфигурация:

Код: Выделить всё

import matplotlib
from matplotlib.axes import Axes
from matplotlib.figure import Figure
from matplotlib.backends.backend_qtagg import FigureCanvasQTAgg as Canvas

class CustomFigure(Figure):
def __init__(self, figsize: tuple, layout: str):
super().__init__(figsize=figsize, layout=layout)
self.canvas = Canvas(self)
matplotlib.use("QtAgg")
self.set_common_params()

def generate_axes(self, num_axes: int, layout: tuple = None) -> Axes:
if layout is None:
layout = (1, num_axes)
return self.subplots(*layout)

def set_common_params(self):
matplotlib.rcParams["figure.titlesize"] = 45
matplotlib.rcParams["axes.titlesize"]   = 13
matplotlib.rcParams["axes.labelsize"]   = 12
matplotlib.rcParams["axes.linewidth"]   = 1.5
matplotlib.rcParams["xtick.labelsize"]  = 11
matplotlib.rcParams["ytick.labelsize"]  = 11

@staticmethod
def set_labels(ax: Axes, xlabel: str, ylabel: str, title: str = None):
ax.set_xlabel(xlabel)
ax.set_ylabel(ylabel)
if title is not None:
ax.set_title(title)

def generate_pdf(self, filename: str):
self.savefig(f"{filename}.pdf")

if __name__ == "__main__":
import sys
from PySide6.QtWidgets import QApplication, QMainWindow
app = QApplication(sys.argv)
win = QMainWindow()
fig = CustomFigure((5,5), "tight")
fig.set_labels(fig.generate_axes(1), "X", "Y", "Title")
win.setCentralWidget(fig.canvas)
win.show()
sys.exit(app.exec())
Я пробовал поместить rcParams во все возможные места кода, даже до определения класса, но ничего не помогло.
Как мне это сделать? правильно ли применить rcParams?

Подробнее здесь: https://stackoverflow.com/questions/790 ... tlib-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»