我正在尝试共享两个子图轴,但我需要在创建图形后共享x轴.所以,举个例子,我创建了这个数字:
import numpy as np
import matplotlib.pyplot as plt
t= np.arange(1000)/100.
x = np.sin(2*np.pi*10*t)
y = np.cos(2*np.pi*10*t)
fig=plt.figure()
ax1 = plt.subplot(211)
plt.plot(t,x)
ax2 = plt.subplot(212)
plt.plot(t,y)
# some code to share both x axis
plt.show()
Run Code Online (Sandbox Code Playgroud)
而不是评论我会插入一些代码来共享两个x轴.我没有找到任何线索我怎么能这样做.有一些属性
_shared_x_axes,_shared_x_axes当我检查图轴(fig.get_axes())但我不知道如何链接它们.
当我使用pyinstaller编译PyQt代码时,我遇到了一个问题.
我用这行来编译:
c:\Anaconda3\Scripts\pyinstaller.exe -y -F --distpath="." MyQt.py
Run Code Online (Sandbox Code Playgroud)
然后我收到此错误消息:
File "c:\anaconda36bis\lib\site-packages\PyInstaller\hooks\hook-zmq.py", line
18, in <module>
hiddenimports.extend(collect_submodules('zmq.backend'))
File "c:\anaconda36bis\lib\site-packages\PyInstaller\utils\hooks\__init__.py",
line 619, in collect_submodules
repr(pkg_dir), package))
File "c:\anaconda36bis\lib\site-packages\PyInstaller\utils\hooks\__init__.py",
line 90, in exec_statement
return __exec_python_cmd(cmd)
File "c:\anaconda36bis\lib\site-packages\PyInstaller\utils\hooks\__init__.py",
line 77, in __exec_python_cmd
txt = exec_python(*cmd, env=pp_env)
File "c:\anaconda36bis\lib\site-packages\PyInstaller\compat.py", line 562, in
exec_python
return exec_command(*cmdargs, **kwargs)
File "c:\anaconda36bis\lib\site-packages\PyInstaller\compat.py", line 369, in
exec_command
out = out.decode(encoding)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 152: invali
d start byte
Run Code Online (Sandbox Code Playgroud)
我不清楚错误信息,我不明白为什么会这样.
pyinstaller是否可能尝试使用不兼容的模块?我在我的脚本中使用这些:
# -*- coding: utf-8 -*- …Run Code Online (Sandbox Code Playgroud) 我有一个问题,用conda更新anaconda的包.当我进行conda更新时 - 所有问题都告诉我:
Error: Unable to remove files for package: cryptography
Please close all processes running code from cryptography and try again.
Run Code Online (Sandbox Code Playgroud)
但是,没有进程正在运行,我只打开了cmd窗口.当我想要更新dateutile时也是如此.这就像conda使用一些包然后我无法更新它们?有人知道关闭或删除这些包以重新安装它们的方法吗?
有关信息:
C:\Anaconda3\Scripts>conda info -a
Current conda install:
platform : win-64
conda version : 3.11.0
conda-build version : 1.11.0
python version : 3.4.3.final.0
requests version : 2.6.2
root environment : C:\Anaconda3 (writable)
default environment : C:\Anaconda3
envs directories : C:\Anaconda3\envs
package cache : C:\Anaconda3\pkgs
channel URLs : https://conda.binstar.org/juanlu001/win-64/
https://conda.binstar.org/juanlu001/noarch/
https://repo.continuum.io/pkgs/free/win-64/
https://repo.continuum.io/pkgs/free/noarch/
https://repo.continuum.io/pkgs/pro/win-64/
https://repo.continuum.io/pkgs/pro/noarch/
config file : C:\Users\maxime.condarc
is …Run Code Online (Sandbox Code Playgroud) 我试图将 QHBoxlayout 中的每个小部件对齐到顶部,但我得到的是每个小部件似乎都居中。我认为这是由于尺寸不同造成的。
例如:
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys
class SurfViewer(QMainWindow):
def __init__(self, parent=None):
super(SurfViewer, self).__init__()
self.parent = parent
self.setFixedWidth(300)
self.setFixedHeight(100)
self.wid = QWidget()
self.setCentralWidget(self.wid)
self.groups = QHBoxLayout()
l_a1 = QLabel('A')
a = QVBoxLayout()
a.addWidget(l_a1)
self.groups.addLayout(a)
l_a2 = QLabel('A')
l_b2 = QLabel('B')
a_b = QVBoxLayout()
a_b.addWidget(l_a2)
a_b.addWidget(l_b2)
self.groups.addLayout(a_b)
l_a3 = QLabel('A')
l_b3 = QLabel('B')
l_c3 = QLabel('C')
a_b_c = QVBoxLayout()
a_b_c.addWidget(l_a3)
a_b_c.addWidget(l_b3)
a_b_c.addWidget(l_c3)
self.groups.addLayout(a_b_c)
self.groups.setAlignment(Qt.AlignTop)
self.wid.setLayout(self.groups)
if __name__ == '__main__':
app …Run Code Online (Sandbox Code Playgroud) 我正在尝试绘制一个图,其中两个子图是第一个的缩放。我想做的是如下图所示:
尤其是黑线。我现在的代码只是绘制子图
import matplotlib.pyplot as plt
import numpy as np
t=np.arange(1000)
x=np.sin(np.arange(1000)/10)
plt.figure()
ax1 = plt.subplot(2,1,1)
plt.plot(t,x)
ax2 = plt.subplot(2,2,3)
plt.plot(t[100:200],x[100:200])
ax3 = plt.subplot(2,2,4)
plt.plot(t[600:700],x[600:700])
plt.show()
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何在图形顶部添加黑线(以制作缩放框效果)。我不知道如何开始。有人有想法吗?
我试图理解他们之间的区别self,cls但是我很挣扎,即使它存在很多关于那个话题.例如:
class maclass():
A = "class method"
def __init__(self):
self.B = "instance method"
def getA_s(self):
print(self.A)
def getA_c(cls):
print(cls.A)
def getB_s(self):
print(self.B)
def getB_c(cls):
print(cls.B)
C = maclass()
C.getA_s()
C.getA_c()
C.getB_s()
C.getB_c()
Run Code Online (Sandbox Code Playgroud)
这给了我:
class method
class method
instance method
instance method
Run Code Online (Sandbox Code Playgroud)
所以无论我使用什么self或cls它离开都是指相同的变量.当我加入 self.A的Init__,该cls.A只是更换
def __init__(self):
self.B = "instance method"
self.A = "new instance method"
Run Code Online (Sandbox Code Playgroud)
我得到:
new instance method
new instance method
instance method
instance method
Run Code Online (Sandbox Code Playgroud)
如果它们是相同的话,我不明白有两种方法可以调用类成员吗?我知道这是这个论坛上的一个常见问题,但我真的不明白为什么我们可以用不同的词来指代同一个东西(我们甚至可以使用任何单词而不是self或cls …
在 python 中使用 pyqtgraph 模块时遇到问题。当我将白色背景颜色添加到 glscatterplot 时,散点就会消失。就像如果背景颜色被添加到散点图的颜色中,那么一切都是白色的。这是我使用的一段代码:
w = gl.GLViewWidget()
w.setBackgroundColor('w')
w.show()
sp3 = gl.GLScatterPlotItem(pos=np.transpose(pos3), color=rgba_img, size=1, pxMode=False)
w.addItem(sp3)
Run Code Online (Sandbox Code Playgroud)
如果我在 setBackgroundColor 方法中将 ('w') 替换为 ('k'),则分散的颜色很好,背景为黑色。有没有其他人遇到过这个问题?
我正在尝试根据另一个向量的整数值添加向量的浮点值.
例如,如果我有:
import numpy as np
a = np.array([0.1,0.2,0.3,0.4,0.5,0.6,07.3,0.8,0.9,1.,1.2,1.4])
b = np.array([0,0,0,0,0,1,1,1,2,2,2,2]).astype(int)
Run Code Online (Sandbox Code Playgroud)
我想将a矢量的第一个值加在一起(因为b的5个第一个值是0),3个下一个值一起(因为b的3个下一个值是1),依此类推.所以最后我希望有
c = function(a,b)
c = [0.1+0.2+0.3+0.4+0.5, 0.6+7.3+0.8, 0.9+1.+1.2+1.4]
Run Code Online (Sandbox Code Playgroud) 我试图在嵌入Qt环境的matplotlib图中绘制大量信号。这些图根据QScrollBar进行了更新,它修改了我需要显示的信号部分。我的问题是更新图形需要花费相当长的时间,尤其是因为我要更新250个信号。因此,我正在寻找一种优化EEG_plot.update函数以减少其绘制时间的方法。我不知道如何使用动画功能来加快处理过程或其他操作。我担心的是,我需要更新时间轴刻度,可能还要更新y轴标签的位置。另一件事是,如果我需要绘制的最后一段与所选窗口大小不完全对应,那么我只需要绘制一部分窗口(例如,最后一段为5s,但窗口大小为10s)
我在下面给出整个脚本
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys
import matplotlib
matplotlib.use('Qt5Agg')
import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
import numpy as np
class Viewer(QMainWindow):
def __init__(self, parent=None):
super(Viewer, self).__init__()
self.parent = parent
#######################################
self.centralWidget = QWidget()
self.setCentralWidget(self.centralWidget)
self.mainVBOX_param_scene = QVBoxLayout()
self.mascene = plot(self)
self.paramPlotV = QVBoxLayout()
self.horizontalSliders = QScrollBar(Qt.Horizontal)
self.horizontalSliders.setFocusPolicy(Qt.StrongFocus)
self.horizontalSliders.valueChanged.connect(self.update_plot)
self.horizontalSliders.setMinimum(0)
self.horizontalSliders.setMaximum(1)
self.paramPlot = QHBoxLayout()
l_gain = QLabel('Gain')
self.e_gain = QLineEdit('5')
l_win = QLabel('Window')
self.e_win = QLineEdit('10')
l_spacing …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 PyCuda 在我的 RTX 2080 Ti 上实现具有 Hodgkin 和 Huxley 形式主义的神经元模型。代码相当大,所以我不会将其全部放在这里。我的课程的第一部分是设置神经元的数量,在 GPU 中创建所有变量,并根据神经元的数量获取块和网格大小(线程 1 个神经元)
class Inter_PC:
def __init__(self, ):
self.NbODEs = 25
self.NbCells = int(1024 * 1)
self.init_vector()
self.init_vector_param()
self.Create_GPU_SourceModule()
BLOCK_SIZE = 1024
self.grid = (int(self.NbCells / BLOCK_SIZE), 1)
self.block = (BLOCK_SIZE, 1, 1)
Run Code Online (Sandbox Code Playgroud)
在函数init_vectorand中init_vector_param,我将向量放入 GPU 中计算 ODE 结果
def init_vector(self):
self.Vs_PC_dydx1 = self.put_vect_on_GPU(np.zeros((self.NbCells), dtype=np.float32))
self.Vs_PC_dydx2 = self.put_vect_on_GPU(np.zeros((self.NbCells), dtype=np.float32))
self.Vs_PC_dydx3 = self.put_vect_on_GPU(np.zeros((self.NbCells), dtype=np.float32))
self.Vs_PC_dydx4 = self.put_vect_on_GPU(np.zeros((self.NbCells), dtype=np.float32))
self.Vs_PC_y = self.put_vect_on_GPU(np.zeros((self.NbCells), dtype=np.float32))
self.Vs_PC_yt = self.put_vect_on_GPU(np.zeros((self.NbCells), dtype=np.float32)) …Run Code Online (Sandbox Code Playgroud)