嗨,我正在尝试编写一个模块,该模块可以让我通过读取和发送数据pyserial。我必须能够并行读取主脚本中的数据。随着计算器用户的帮助下,我有一个基本的和工作框架方案,但是当我尝试添加一个类我创建了一个使用pyserial(句柄找到端口,速度等),发现在这里我得到以下错误:
File "<ipython-input-1-830fa23bc600>", line 1, in <module>
runfile('C:.../pythonInterface1/Main.py', wdir='C:/Users/Daniel.000/Desktop/Daniel/Python/pythonInterface1')
File "C:...\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
execfile(filename, namespace)
File "C:...\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/Daniel.000/Desktop/Daniel/Python/pythonInterface1/Main.py", line 39, in <module>
p.start()
File "C:...\Anaconda3\lib\multiprocessing\process.py", line 112, in start
self._popen = self._Popen(self)
File "C:...\Anaconda3\lib\multiprocessing\context.py", line 223, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "C:...\Anaconda3\lib\multiprocessing\context.py", line 322, in _Popen
return Popen(process_obj)
File "C:...\Anaconda3\lib\multiprocessing\popen_spawn_win32.py", line 89, in __init__
reduction.dump(process_obj, to_child)
File "C:...\Anaconda3\lib\multiprocessing\reduction.py", line 60, in dump
ForkingPickler(file, …Run Code Online (Sandbox Code Playgroud) 我正在尝试打开多个图,但遇到了一些问题。当我尝试使用线程创建绘图时,python 首先会打开多个窗口,然后关闭除第一个窗口之外的所有窗口。
在另一个问题中,建议我使用我已经尝试过的多处理。代码运行没有错误,只是不显示任何情节。
在继续我的主要项目之前,我正在尝试做一些非常简单的事情。
# Import the necessary packages and modules
import matplotlib.pyplot as plt
import numpy as np
#from threading import Thread
import multiprocessing
def plot(datax, datay, name):
# Prepare the data
x = datax
y = datay**2
# Plot the data
plt.scatter(x, y, label=name)
# Add a legend
plt.legend()
# Show the plot
plt.show()
#plot(3,3,)
'''
for i in range(10):
t = Thread(target=plot, args=(i,i+1,i,))
t.start()
'''
for i in range(2):
p = multiprocessing.Process(target=plot, args=(i, i, i))
p.start()
Run Code Online (Sandbox Code Playgroud)
更新:由于某种原因,多处理再次停止工作。我尝试创建一个函数 …
我正在尝试使用 C 中的 Glade 和 gtk 创建一个简单的 gui。在 GUI 中,我想添加一个绘制数据的小部件(我只需要线图和直方图)(不断更新),但我不知道该做什么用。我已经看到 gnuplot 很流行,但我不知道如何在应用程序中使用它。我想要一些建议和一些说明,因为我找不到它。
这是我用作基础的一些示例代码,只是为了给您一个想法
更新:我在我的电脑上构建了 gnuplot,现在当我运行代码时,它不会打开一个新窗口,而且似乎在我的窗口内绘图。唯一的问题是我的 gtkbox 容器中的小部件没有调整大小,所以它看起来像一个小白条。我假设它正在工作,因为我删除了
gui.graph = gnuplot_init() ;
gnuplot_setstyle(gui.graph, "lines") ;
gnuplot_cmd(gui.graph, "set terminal x11 window \"%x\"", (int)gtk_socket_get_id (gui.socket));
gnuplot_plot_slope(gui.graph, 1.0, 0.0, "unity slope") ;Run Code Online (Sandbox Code Playgroud)
并在单独的终端上运行命令,我提到的白条会弹出。
#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include "variables.h"
#include "gnuplot_i.h"
struct test tv;
struct GUI gui;
// Functions
void GUISetup();
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
gui.builder = gtk_builder_new_from_file("glade/window_main.glade");
gui.window = GTK_WIDGET(gtk_builder_get_object(gui.builder, "window_main"));
gtk_builder_connect_signals(gui.builder, NULL);
GUISetup();
g_object_unref(gui.builder);
// start fullbuilderscreen
gtk_window_fullscreen(GTK_WINDOW(gui.window)); …Run Code Online (Sandbox Code Playgroud)我正在尝试编写一个程序,通过串口从 arduino 获取串行数据,并实时绘制它。我使用 matplotlib 编写了代码,但我希望对结果感到满意,所以我试图让它在 pyqtgraph 上工作(学习如何使用它的资源要少得多)。我的问题是代码显示了一个空图。似乎 _update 仅被调用一次,但是当我将其放入循环中时,图表甚至不显示。
\n\n我编写了一些其他代码来实现我想要的功能,即实时绘制数据,在数据通过阈值后,它在数据上绘制新线,显示线性回归。我从这里得到了一个示例(https://github.com/JaFeKl/joystick_real_time_plot_with_pyqtgraph/blob/master/real_time_plot.py),因为我希望我的代码是可调用的(在函数中,但我无法让它工作.到目前为止,我正在从 python 中生成数据以简化调试
\n\nimport sys\nimport pyqtgraph as pg\nimport pyqtgraph.exporters\nfrom pyqtgraph.Qt import QtGui, QtCore\nimport numpy as np\n\nimport serial\n\n# test\nimport math\nimport time\n\n\nclass Graph(QtGui.QMainWindow):\n def __init__(self, parent=None):\n super(Graph, self).__init__(parent)\n self.n = 3\n self.mainbox = QtGui.QWidget()\n self.setCentralWidget(self.mainbox)\n self.mainbox.setLayout(QtGui.QVBoxLayout())\n\n self.canvas = pg.GraphicsLayoutWidget() # create GrpahicsLayoutWidget obejct \n self.mainbox.layout().addWidget(self.canvas)\n\n # Set up plot\n self.analogPlot = self.canvas.addPlot(title=\'Signal from serial port\')\n self.analogPlot.setYRange(-1,1123) # set axis range\n self.analogPlot.setXRange(-1,1123)\n self.analogPlot.showGrid(x=True, y=True, alpha=0.5) # show Grid\n x_axis = …Run Code Online (Sandbox Code Playgroud)