Можно ли сделать такой по стилю график с библиотекой PyQt5?

Можно ли использую настройки для графиков в PyQt5 сделать такой график:

введите сюда описание изображения


Ответы (1 шт):

Автор решения: S. Nick

Попробуйте так:

import sys
import numpy as np
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, \
    QVBoxLayout, QTextEdit, QGridLayout
from PyQt5.QtCore import Qt    
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas

plt.rcParams["xtick.color"] = "red"


class Canvas(FigureCanvas):
    def __init__(self, parent):
        fig, self.ax = plt.subplots(figsize=(5, 4), dpi=100) 
        super().__init__(fig)
        self.setParent(parent)

        self.ax.set_facecolor((0.8, 0.8, 0.8, 0.5)) # Set the background to ...

        t = np.arange(0.0, 2.0, 0.01)
        s = 1 + np.sin(2 * np.pi * t)
        
        self.ax.plot(t, s)

        self.ax.set(xlabel='time (s)', ylabel='voltage (mV)',
               title='Примерно как-то так')
        self.ax.grid()


class AppDemo(QWidget)      :
    def __init__(self):
        super().__init__()

        self.textEdit = QTextEdit()
        
        self._widget = QWidget()
        self._widget.setStyleSheet("background-color: red;")
        chart = Canvas(self._widget)
        layoutV = QVBoxLayout(self._widget)
        layoutV.setContentsMargins(2, 2, 2, 2)
        layoutV.addWidget(chart)
  
        layout = QGridLayout(self)
        layout.addWidget(self.textEdit, 0, 0, 2, 1)
        layout.addWidget(self._widget, 0, 1, 1, 1)
        layout.addWidget(QPushButton('Hello World'), 1, 1, 1, 1)
        layout.setColumnStretch(0, 1)
        layout.setColumnStretch(1, 1)
        

if __name__ == "__main__":
    app = QApplication(sys.argv)        
    w = AppDemo()
    w.resize(1000, 500)
    w.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка