Можно ли сделать такой по стилю график с библиотекой 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_())

