如何在pyqtgraph中平滑图形?

独角兽

我用pyqtgraph绘制了一个图,现在我试图“平滑”该图(而不是之字形),该图(我读过)可以使用antialias,但是我找不到合适的“位置”来使其正常工作。

import sys
from PyQt5 import QtWidgets
import pyqtgraph as pg

class MainWindow(QtWidgets.QMainWindow):

    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)
        self.plot()

    def plot(self):
        self.graphWidget = pg.PlotWidget()
        self.setCentralWidget(self.graphWidget)
        self.graphWidget.setBackground('w')
        pen = pg.mkPen(color=('b'), width=2)
        styles = {'color':'r', 'font-size':'15px'}

        self.graphWidget.setConfigOptions(antialias=True)  # AttributeError: setConfigOptions

        self.graphWidget.setLabel('left', 'x-values', **styles)
        self.graphWidget.setLabel('bottom', 'y-values', **styles)
        
        x_values = [1, 2, 3, 4, 5]
        y_values = [2, 1, 2, 4, 3]

        self.graphWidget.plot(x_values, y_values, pen=pen, symbol='o',
                                   symbolSize=8, symbolPen='k', symbolBrush='k')

def main():
    app = QtWidgets.QApplication(sys.argv)
    main = MainWindow()
    main.show()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

我也尝试过,但是没有成功(没有做任何不同的事情):

pen = pg.mkPen(color=('b'), width=2, antialias=True)
self.graphWidget.plot(x_values, y_values, pen=pen, symbol='o',
                                   symbolSize=8, symbolPen='k', symbolBrush='k', antialias=True)

如果有人可以告诉我如何正确使用此方法(或者是否有其他方法可以平滑图形),我将感到非常高兴。

我正在使用Python 3.8,PyQt5 5.15.0,PyCharm 2020.2和Linux Mint 19.3。

永乐

抗锯齿属性的目的不是使绘制的曲线平滑,而是使绘画平滑。如果要平滑曲线,则必须对点进行插值,例如使用scipy.interpolate.make_interp_spline

import sys
from PyQt5 import QtWidgets
import pyqtgraph as pg
import numpy as np
from scipy.interpolate import make_interp_spline


class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)
        self.plot()

    def plot(self):
        pg.setConfigOptions(antialias=True)
        self.graphWidget = pg.PlotWidget()
        self.setCentralWidget(self.graphWidget)
        self.graphWidget.setBackground("w")
        pen = pg.mkPen(color=("b"), width=2)
        styles = {"color": "r", "font-size": "15px"}

        self.graphWidget.setLabel("left", "x-values", **styles)
        self.graphWidget.setLabel("bottom", "y-values", **styles)

        x_values = [1, 2, 3, 4, 5]
        y_values = [2, 1, 2, 4, 3]

        xnew = np.linspace(min(x_values), max(x_values), 100)
        spl = make_interp_spline(x_values, y_values, 3)
        ynew = spl(xnew)

        self.graphWidget.plot(xnew, ynew, pen=pen)


def main():
    app = QtWidgets.QApplication(sys.argv)
    main = MainWindow()
    main.show()
    sys.exit(app.exec_())


if __name__ == "__main__":
    main()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python中平滑数据?

来自分类Dev

如何在MATLAB中平滑表面?

来自分类Dev

如何在Android中平滑画布绘制?

来自分类Dev

如何在python中平滑曲线

来自分类Dev

如何在MATLAB中平滑表面?

来自分类Dev

如何在python3中平滑线条?

来自分类Dev

如何在c#中平滑线(点数组)?

来自分类Dev

如何在 Rplot 中平滑我的偏差曲线

来自分类Dev

如何在CSS中平滑地在悬停上设置背景图像大小的动画?

来自分类Dev

如何在Javascript中平滑移动字符(不使用Canvas)

来自分类Dev

这段代码的结构是否适合其用途,如何在Android中平滑动画?

来自分类Dev

如何在STL加载的BufferGeometry中平滑网格三角形

来自分类Dev

该代码的结构是否适合其用途,并且如何在Android中平滑动画?

来自分类Dev

如何在动作脚本中平滑地将Sprite拖动到屏幕上

来自分类Dev

如何在CSS中平滑地在悬停上设置背景图像大小的动画?

来自分类Dev

如何在谷歌地图中平滑移动当前位置?

来自分类Dev

在matplotlib中平滑外边缘

来自分类Dev

在阴影DOM中平滑滚动

来自分类Dev

在matplotlib中平滑外边缘

来自分类Dev

js中平滑的颜色变化

来自分类Dev

jQuery:在元素中平滑滑动?

来自分类Dev

Android:如何在xml中平衡GridLayout

来自分类Dev

如何在Perl中平方数字?

来自分类Dev

如何在SQL Server中平均NVARCHAR

来自分类Dev

如何纠正在Google Maps v2中平滑移动标记的问题?

来自分类Dev

c#-如何使用图形路径制作平滑的弧形区域

来自分类Dev

Android NestedScrollView在CoordinatorLayout中平滑滚动

来自分类Dev

在CSS中平滑移动动画

来自分类Dev

在R中平滑方向(角度)数据

Related 相关文章

热门标签

归档