我有设备连接到我的串口,我需要轮询它们然后在绘图中显示该数据.我目前使用matplotlib工作(慢慢地).我最多可以连接64个设备,每个设备可以有20个数据要更新.我已经进行了设置,以便可以创建一个新窗口并添加一些数据进行绘制.打开每个额外的绘图窗口后,我的更新速率会大大降低.
我尝试在matplotlib中使用blit动画,但它并不是很顺利,我可以在更新中看到异常.我已经尝试过PyQtGraph,但找不到任何关于如何使用这个包的文档,现在我正在尝试PyQwt,但是无法安装它(主要是因为我的公司不会让我们安装一个包处理.gz文件).任何想法或建议将不胜感激.
import sys
from PyQt4.QtCore import (Qt, QModelIndex, QObject, SIGNAL, SLOT, QTimer, QThread, QSize, QString, QVariant)
from PyQt4 import QtGui
from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from plot_toolbar import NavigationToolbar2QT as NavigationToolbar
import matplotlib.dates as md
import psutil as p
import time
import datetime as dt
import string
import ui_plotting
import pickle
try:
_fromUtf8 = QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Monitor(FigureCanvas):
"""Plot widget to display real time graphs"""
def __init__(self, timenum): …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个交互式绘图应用程序,它要求用户从matplotlib散点图中选择数据点.为清楚起见,我希望能够在点击(或通过任何方式选择)时改变绘制点的颜色和形状.
由于matplotlib.collections.PathCollection
班级有set_facecolors
方法,改变点的颜色相对简单.但是,我看不到更新标记形状的类似方法.
有没有办法做到这一点?
问题的准系统说明:
import numpy as np
import matplotlib.pyplot as plt
x = np.random.normal(0,1.0,100)
y = np.random.normal(0,1.0,100)
scatter_plot = plt.scatter(x, y, facecolor="b", marker="o")
#update the colour
new_facecolors = ["r","g"]*50
scatter_plot.set_facecolors(new_facecolors)
#update the marker?
#new_marker = ["o","s"]*50
#scatter_plot.???(new_marker) #<--how do I access the marker shapes?
plt.show()
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?