标签: pyqtgraph

Python 3.3 pyqtgraph无法绘制点

是我还是无法使用Python 3.3在pyqtgraph中绘制点(散点图)?

我有相当大的数据*,并且发现matplotlib的速度太慢,所以我想尝试一下:

1)pyqtgraph.plot([1],[1])在图中未显示任何内容。

2)pyqtgraph.plot([1,2,3,4], [1,2,3,4]) 显示连接点的线

3)pyqtgraph.plot([1,2,3,4], [1,2,3,4], pen=None)根据文档建议,错误**

4)pyqtgraph.ScatterPlotItem()不存在。

我不知道要尝试什么...有人能正常工作并且愿意共享代码吗?


*我知道我所提供的数据具有讽刺意味,请原谅。

** TypeError:--'NoneType'和'NoneType'的不受支持的操作数类型。

***也许无关,但是我也无法运行示例(Ubuntu 13.04)。

plot python-3.x pyqtgraph

3
推荐指数
1
解决办法
4335
查看次数

pyqtgraph 中没有值

我正在尝试使用 pyqtgraph 从包含空值(来自熊猫的数据)的数据制作图表。

pyqtgraph - 黄色圆圈有空值

用excel画图

我希望使用 pyqtgraph 的图形与 excel 图形相同。换句话说,该区域中不会有空值的行。

python excel pandas pyqtgraph

3
推荐指数
1
解决办法
2046
查看次数

在PyQt中嵌入“图类型” Seaborn图(pyqtgraph)

我正在使用PyQt的包装器(pyqtgraph)来构建GUI应用程序。我希望使用MatplotlibWidget在其中嵌入一​​个Seaborn图 。但是,我的问题是,诸如Seaborn的包装方法不接受外部图形处理。此外,当我尝试用产生的图形更新基于()的MatplotlibWidget对象时,它不起作用(后面没有图形)。有任何解决方法的建议吗?FacetGrid.figFacetGriddraw

pyqt matplotlib pyqtgraph seaborn matplotlib-widget

3
推荐指数
2
解决办法
3952
查看次数

在 Python 3 中将逗号分隔的字符串转换为 Numpy 数组

我正在使用 Python 从使用 Python 3 中的 PySerial 的 Arduino 传感器读取数据。

我想使用 PyQtGraph 绘制数据,所以我试图将从传感器读取的字符串(288 个逗号分隔值)转换为 Numpy 数组。但是,我尝试了几种不同的方法,但都没有奏效。

使用此代码从传感器读取非常有用:

#Read the line of data from the sensor
line = sensor.readline()

#Decode the line to UTF-8 and print it
lineDecoded = line.decode("UTF-8")

print(lineDecoded)
Run Code Online (Sandbox Code Playgroud)

这给了我正确的输出(288 个逗号分隔值):

137,136,151,145,141,133,145,139,140,​​145,144,139,143,141,139,136,137,138,137,127,142,135,136,137,137, 140、127、141、134、128、139、135、136、180、149、147、147、151、156、140、153、143、143、155、163、164、192、250、277、 275,258,258,248,245,231,215,225,195,195,159,186,175,168,171,173,177,185,213,224,228,231,227,219,226,219 229,231,231,250,253,262,276,269,274,274,277,276,272,291,303,351,417,483,500,473,399,315,263,255,239,238,244,234,231,231,242,255,272,294,293,299,314,307,306,302,310,319,304,312,327,370,464,507,514,492,425,358,327,313,299,292,291,281,259,245,232,229,224,223,222,216,226,215,211,197,202,199,197,198,193,198,185,190,196,177,198,188,183,201,193,187,159,189,184,186,185,186,185,184,196,195,200,201,198,193,241,189,186,167,179,187,174,188,180,179,169,177,173,172,175,181,175,171,180,175,176,180,184,176,190,182,172,171,179,178,174,188,175,178,167,183,171,168,174,175,171,230,175,177,159,177,170,172,171,173,168,167,169,172,168,171,177,173,167,167,171,163,170,177,172,169,167,163,157,173,161,168,174,162,165,171,165,162,152,165,173,158,193,161,161,147,159,161,159,169,173,168,158,161,159,158,171,167,167,155,159,169,156,159,162,157,165,161,158,147,161,171,159,

从那里开始,我认为我只能传递lineDecoded给 PyQtGraph 的plot函数,但是在运行这行代码之后

x = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288]

y = [lineDecoded]

#Plot the data
pg.plot(x, y)
Run Code Online (Sandbox Code Playgroud)

我得到了错误 Exception: X and Y arrays must be the same shape--got (288,) and (1,).

我尝试在将字符串传递给 PyQtGraph …

python numpy pyqtgraph

3
推荐指数
1
解决办法
9739
查看次数

pyqtgraph:同步不同图中轴的缩放

我想同步几个 pyqtgraph 图的 X 轴。当用户使用鼠标交互(例如鼠标在 x 轴上时滚动滚轮)重新调整 X 轴时,我想将相同的更改分配给所有其他绘图。那么我该怎么做呢?

我从下面的基本示例中导出了一个最小化的代码。

我一定要覆盖viewRangeChanged()的功能w1w2

import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import pyqtgraph.console
import numpy as np

from pyqtgraph.dockarea import *


win = QtGui.QMainWindow()
area = DockArea()
win.setCentralWidget(area)
win.resize(1000,500)
win.setWindowTitle('pyqtgraph example: dockarea')


d1 = Dock("Dock1")
d2 = Dock("Dock2")
area.addDock(d1, 'bottom')
area.addDock(d2, 'bottom', d1)

w1 = pg.PlotWidget(title="Dock 1 plot")
w1.plot(np.random.normal(size=100))
d1.addWidget(w1)

w2 = pg.PlotWidget(title="Dock 2 plot")
w2.plot(np.random.normal(size=100))
d2.addWidget(w2)

win.show()

## Start Qt event loop unless running …
Run Code Online (Sandbox Code Playgroud)

python pyqtgraph

3
推荐指数
3
解决办法
1621
查看次数

在 PyQt5 中将绘图嵌入到graphicsView中

我用来pyqtgraph在 PyQt5 GUI 中绘图。我可以在弹出窗口中绘图,但我正在尝试将图形嵌入到该graphicsView区域中。

以下是我在新窗口中绘制简单绘图的方法:

    self.pushButton.clicked.connect(self.btn_clk)

    MainWindow.show()
def btn_clk(self):
    L = [1,2,3,4,5]
    pg.plot(L)
Run Code Online (Sandbox Code Playgroud)

我尝试使用这一行来嵌入情节,但它不起作用:

    self.pushButton.clicked.connect(self.btn_clk)

    MainWindow.show()
def btn_clk(self):
    L = [1,2,3,4,5]
    self.graphicsView.plot(L)
Run Code Online (Sandbox Code Playgroud)

这是完整的代码:

import pyqtgraph as pg
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(662, 512)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit.setObjectName("lineEdit")
        self.verticalLayout.addWidget(self.lineEdit)
        self.graphicsView = QtWidgets.QGraphicsView(self.centralwidget)
        self.graphicsView.setObjectName("graphicsView")
        self.verticalLayout.addWidget(self.graphicsView)
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setObjectName("pushButton")
        self.verticalLayout.addWidget(self.pushButton)
        self.horizontalLayout.addLayout(self.verticalLayout)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 662, …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqtgraph pyqt5

3
推荐指数
1
解决办法
1万
查看次数

使用pyqtgraph进行python实时绘图

我需要实时绘制来自串行端口的一系列浮点数。这些值由'\ n'字符分隔,因此数据序列如下所示:x1 x2 x3 ...

您将如何绘制数据? 我正在使用Arduino板,数据速率为200个样本/秒,并且我的PC在Windows7 64位上运行。我认为一个不错的选择是使用pyqtgraph库。我开始在pyqtgraph中使用Plotting.py示例(在安装pyqtgraph然后运行之后,可以使用更多示例python3 -m pyqtgraph.examples),但是我不知道如何根据我的需要调整此代码(请参见下文)。提前非常感谢您。

from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
import pyqtgraph as pg

# Set graphical window, its title and size
win = pg.GraphicsWindow(title="Sample process")
win.resize(1000,600)
win.setWindowTitle('pyqtgraph example')

# Enable antialiasing for prettier plots
pg.setConfigOptions(antialias=True)

# Random data process
p6 = win.addPlot(title="Updating plot")
curve = p6.plot(pen='y')
data = np.random.normal(size=(10,1000)) #  If the Gaussian distribution shape is, (m, n, k), then m * n * k samples are drawn. …
Run Code Online (Sandbox Code Playgroud)

python plot real-time pyqtgraph

3
推荐指数
1
解决办法
1万
查看次数

如何在 pyqtgraph 中正确缩放/旋转图像?

我已经在PyQt5pyqtgraph里面实现了QGraphicsView。当我按以下方式显示图像时,它会以与屏幕相同的宽高比拉伸和扩展。我该如何解决?

image = pg.ImageItem(asarray(Image.open('pic.png')) )      
self.graphicsView.addItem(image)
image.rotate(270) 
Run Code Online (Sandbox Code Playgroud)

编辑:找到了如何旋转图像,所以我用解决方案更新了问题。现在我只是想适当地缩放它。

python qgraphicsview pyqtgraph pyqt5

3
推荐指数
1
解决办法
5466
查看次数

程序执行时pyqtgraph绘图不显示

我正在尝试学习如何使用 pyqtgraph 并尝试运行上述文档中给出的以下第一个简单示例:

#!/usr/bin/env python3

import pyqtgraph as pg

import numpy as np

x = np.random.normal(size=1000)

y = np.random.normal(size=1000)

pg.plot(x,y,pen=None,symbol='o',title='first graph')
Run Code Online (Sandbox Code Playgroud)

我在带有 Raspbian Stretch 的 Raspberry Pi 3 上使用 python 3.5.3。

如果我在 Thonny 或 IDLE 中运行上述程序,程序运行时没有任何错误,但不显示任何输出。

同样,如果我通过简单地调用程序名称(我已使用 使其可执行chmod +x)或输入 python3 后跟程序名称来在 Linux 命令提示符下运行该程序,它仍然不会显示任何内容。

但是,如果我在 Linux 提示符下输入 python3 并获得 python 提示符,然后逐行运行程序中的每一行,则它会按预期在标题为“第一张图”的窗口中显示散点图。

有人可以让我知道我需要做什么才能获得代码以在通过 Thonny 或 IDLE 运行时或通过将其作为程序调用来显示图形吗?

谢谢。

python plot python-idle pyqtgraph

3
推荐指数
1
解决办法
3041
查看次数

Pyqtgraph - 如何添加轴日期时间?

该示例使用文件“QtChart.ui”(这很重要),其中嵌入了Pyqtgraph的小部件(这也很重要)。

问题: 显示了图形,但显示了自纪元开始以来的秒数,而不是日期时间轴。

axis = pg.DateAxisItem(orientation='bottom') 按照示例设置了变量,应该将其添加到这样的行中pw = pg.PlotWidget(viewBox=vb, axisItems={'bottom': axis}),但是我的代码中没有这样的行。

如何从纪元开始设置日期时间轴而不是秒?

代码:

import random
import sys
from PyQt5.QtCore import *
from PyQt5 import QtWidgets, uic
from PyQt5.QtWidgets import QMainWindow
import time
import pyqtgraph as pg

x = []
y = []

class draw_interface(QMainWindow):
    def __init__(self):
        super(draw_interface, self).__init__()
        uic.loadUi('QtChart.ui', self)

        self.timer_update_events = QTimer()
        self.timer_update_events.timeout.connect(self.update_chart)
        self.timer_update_events.start(1000)

        axis = pg.DateAxisItem(orientation='bottom')

        self.line = pg.PlotCurveItem(clear=True, pen="g")
        self.widget.addItem(self.line)

        self.show()

    def update_chart(self):
        global x, y

        x.append(time.time())
        y.append(random.uniform(0, …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqtgraph pyqt5

3
推荐指数
1
解决办法
287
查看次数