pyside6中使用matplotlib画折线图

pyside6中使用matplotlib画折线图

在这里插入图片描述



import sys
import time
import random
import numpy as np
from datetime import datetime, timedelta
from PySide6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget
from PySide6.QtCore import QTimer
from matplotlib.backends.backend_qtagg import FigureCanvasQTAgg, NavigationToolbar2QT
from matplotlib.figure import Figure
from matplotlib.widgets import SpanSelector
from matplotlib.dates import date2num, num2date, DateFormatter
import matplotlib.pyplot as plt

# 设置字体为SimHei显示中文
plt.rcParams['font.sans-serif']=['SimHei']
# 设置正常显示符号
plt.rcParams['axes.unicode_minus']=False



class DynamicPlot(FigureCanvasQTAgg):
    def __init__(self, parent=None, width=5, height=4, dpi=100):
        fig = Figure(figsize=(width, height), dpi=dpi)
        self.axes = fig.add_subplot(111)
        super().__init__(fig)

        self.xdata, self.ydata = [], []
        self.line = None
        self.timer = QTimer()
        self.timer.timeout.connect(self.update_plot)
        self.timer.start(1000)

        self.axes.grid(
PySide 中集成好看的折线图,除了使用默认的 `matplotlib` 风格外,还可以通过以下几种方式获取 **好看的图表模板** 或 **UI 风格模板**,以提升界面的美观度和科技感。 --- ## ✅ 获取好看折线图模板的 5 个途径 ### 1. **使用 Seaborn 和 Matplotlib 的预设风格** `seaborn` 提供了多种高级风格模板,如 `darkgrid`, `whitegrid`, `ticks` 等,可以快速美化图表。 ```python import seaborn as sns sns.set(style="darkgrid") ``` ### 2. **Matplotlib 官方示例库** [Matplotlib Gallery](https://matplotlib.org/stable/gallery/index.html) 提供了大量高质量的图表示例,包括折线图、3D 图、动态图等,可以直接复制使用。 ### 3. **PyQtGraph** 这是一个专为 PyQt/PySide 设计的高性能图表库,支持动态图表、实时数据更新,界面现代、科技感强。 - 官网:https://pyqtgraph.readthedocs.io/en/latest/ - 示例代码: ```python import pyqtgraph as pg from PySide6.QtWidgets import QApplication, QMainWindow app = QApplication([]) win = QMainWindow() view = pg.PlotWidget() view.plot([1, 2, 3, 4], [1, 4, 9, 16], pen='g') win.setCentralWidget(view) win.show() app.exec() ``` ### 4. **Plotly + Dash** 如果你希望图表更交互化,可以使用 `Plotly`,它支持 Web 风格的图表,并可以嵌入到 PySide 窗口中。 - 官网:https://plotly.com/python/ - 示例: ```python import plotly.express as px fig = px.line(x=[1, 2, 3], y=[1, 4, 9]) fig.show() ``` > 注意:Plotly 图表可以通过 `QWebEngineView` 嵌入 PySide 应用中。 ### 5. **使用 QML + Qt Charts** Qt 提供了官方的图表模块 `Qt Charts`,支持折线图、柱状图等,风格现代,适合集成到 PySide6 项目中。 - 官方文档:https://doc.qt.io/qt-5/qtcharts-index.html - 示例: ```python from PySide6.QtCharts import QtCharts from PySide6.QtCore import Qt chart = QtCharts.QChart() series = QtCharts.QLineSeries() series.append(0, 6) series.append(2, 4) chart.addSeries(series) chart.createDefaultAxes() chart.setTitle("折线图示例") ``` --- ## ✅ 推荐资源网站 | 类型 | 名称 | 地址 | |------|------|------| | Matplotlib 模板 | Matplotlib Gallery | https://matplotlib.org/stable/gallery/index.html | | 高性能图表 | pyqtgraph | https://pyqtgraph.readthedocs.io/en/latest/ | | Web 图表 | Plotly | https://plotly.com/python/ | | Qt 官方图表 | Qt Charts | https://doc.qt.io/qt-5/qtcharts-index.html | | UI 模板 | Qt Designer | 自带在 PySide6 工具中 | | 图表配色 | Coolors | https://coolors.co/ | --- ## ✅ 示例:使用 Seaborn 美化 matplotlib 折线图 ```python import matplotlib.pyplot as plt import seaborn as sns sns.set(style="darkgrid", palette="bright") x = [1, 2, 3, 4, 5] y = [1, 4, 9, 16, 25] plt.figure(figsize=(6, 4), facecolor="#2e2e2e") plt.plot(x, y, marker='o', color=sns.color_palette()[2], linestyle='--', linewidth=2) plt.title("科技感折线图", color="white") plt.xlabel("X轴", color="white") plt.ylabel("Y轴", color="white") plt.tick_params(colors='white') plt.gca().set_facecolor('#1e1e1e') plt.show() ``` --- ##
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值