Специфические конфигурации для matplotlib впитанный в PyQt5

У меня есть эта настоящая конфигурация:

def config_matplotlib(self):
    self.fig = Figure((130.0, 6.0), dpi=70, facecolor="#F6F4F2")
    self.canvas = FigureCanvas(self.fig)
    self.canvas.setParent(self.window.graphicsGroupBox)
    self.window.graphicsGridLayout.addWidget(self.canvas)
    self.graph_a = self.fig.add_subplot(311)
    self.graph_b = self.fig.add_subplot(312)
    self.graph_c = self.fig.add_subplot(313)

    self.graph_a.grid(True)
    self.graph_b.grid(True)
    self.graph_c.grid(True)

    self.graph_plot_a = self.graph_a.plot(
                [],
                linewidth=1,
                color=("darkorange"),
                )[0]
    self.graph_plot_b = self.graph_b.plot(
                [],
                linewidth=1,
                color=("darkorange"),
                )[0]
    self.graph_plot_c = self.graph_c.plot(
                [],
                linewidth=1,
                color=("darkorange"),
                )[0]

    ajust = {"top": 0.95,
            "bottom": 0.1,
            "right": 0.97,
            "left": 0.05,
            "wspace": 0.2,
            "hspace": 0.2,}
    self.fig.subplots_adjust(**ajust)

    #graficar (lo que se ve cuando se ejecuta el programa por)
    self.canvas.draw()

Дай как оказанный следующее: introducir la descripción de la imagen aquí

Я нуждаюсь в том, чтобы получить график со стилями линии и пределами, равными тем, которые у меня есть здесь: introducir la descripción de la imagen aquí

Я проверил документацию и руководителей и не думаю, как помещать стили линии, печатать два графика в том же plot, и adicionalmente помещать текст, все это впитанное, понятно, из-за которого обычно я знаю, как он делается.

У меня хочет быть начальная конфигурация с установленными пределами, и это другие поместить это в функцию update_plot().

7
задан 02.01.2017, 22:46
0 ответов
  1. Для пределов используй {tu gráfico}.axes.set_xlim([{desde}, {hasta}]) и {tu gráfico}.axes.set_ylim([{desde}, {hasta}]) для пределов
  2. чтобы размещать прерывистые линии используй '--' в такой plot функции как параметр.
  3. Для plotear 2 графика используй {tu gráfico}.plot(data1, {argumentos para el primer gráfico}, data2, {argumentos para el segundo gráfico}, ...)

В следующей части я показываю тебе пример с твоей функцией (я изменил какие-то вещи, которыми я не нахожу их объявленными в твоем коде)

import sys
from PyQt5.QtWidgets import QApplication, QVBoxLayout, QWidget
from matplotlib.backends.backend_qt5agg import FigureCanvas
from matplotlib.figure import Figure


class Window(QWidget):
    def __init__(self, parent=None):
        super(Window, self).__init__(parent)
        self.layout = QVBoxLayout()
        self.setLayout(self.layout)
        self.config_matplotlib()

    def config_matplotlib(self):
        self.fig = Figure((130.0, 6.0), dpi=70, facecolor="#F6F4F2")

        self.canvas = FigureCanvas(self.fig)
        self.layout.addWidget(self.canvas)
        self.graph_a = self.fig.add_subplot(311)
        self.graph_b = self.fig.add_subplot(312)
        self.graph_c = self.fig.add_subplot(313)

        self.graph_a.grid(True)
        self.graph_a.axes.set_xlim([1, 3])
        self.graph_a.axes.set_ylim([0, 120])
        data1 = [10*(x-1)**2 for x in range(1, 5)]
        data2 = [-50 * (x - 4) for x in range(1, 5)]
        self.graph_a.plot(data1, '--', data2, '--')

        self.graph_b.grid(True)
        self.graph_b.axes.set_xlim([1, 3])
        self.graph_b.axes.set_ylim([0, 120])
        self.graph_b.plot(data1, '--')

        self.graph_c.grid(True)
        self.graph_c.axes.set_xlim([1, 3])
        self.graph_c.axes.set_ylim([0, 120])
        self.graph_c.plot(data2, '--')

        self.graph_plot_a = self.graph_a.plot(
            [],
            linewidth=1,
            color=("darkorange"),
        )[0]
        self.graph_plot_b = self.graph_b.plot(
            [],
            linewidth=1,
            color=("darkorange"),
        )[0]
        self.graph_plot_c = self.graph_c.plot(
            [],
            linewidth=1,
            color=("darkorange"),
        )[0]

        ajust = {"top": 0.95,
                 "bottom": 0.1,
                 "right": 0.97,
                 "left": 0.05,
                 "wspace": 0.2,
                 "hspace": 0.2, }
        self.fig.subplots_adjust(**ajust)

        # graficar (lo que se ve cuando se ejecuta el programa por)
        self.canvas.draw()


if __name__ == '__main__':
    app = QApplication(sys.argv)

    main = Window()
    main.show()

    sys.exit(app.exec_())

introducir la descripción de la imagen aquí

2
ответ дан 03.12.2019, 23:20

Теги

Похожие вопросы