Matplotlib Savefig不会覆盖旧文件
这似乎一定是我的机器上的权限问题.在Windows 10上进行系统更新后,当我运行时: import matplotlib.pyplot as plt #make figure plt.plot([1,2,3,4]) plt.ylabel('some numbers') #save plt.savefig("./figs/my_plot.jpg") 它将在第一次运行代码时创建图.如果我更改代码(例如更改标签),然后重新运行,则更新了Jupyter笔记本中显示的绘图,但是保存在我的计算机上的文件不是!截至今天,这是一个新问题,在将系统更新推出之后,这似乎是罪魁祸首.除了每次更改时创建一个新的文件名外,我还可以解决这个问题吗? 解决方案 tldr:照片被覆盖了,但是由于文件夹有很多照片时,由于窗户的怪癖,日期与原始文件保持不变. 乔恩(Jon)2015年10月2日的回答为我带来了困难. https://superuser.com/questions/147525/w
6 2023-05-25
编程技术问答社区
matplotlib.pyplot.plot的Qt会话管理错误
每当我打电话matplotlib.pyplot.plot(在unix os中)时,都会将以下错误打印到屏幕上: Qt: Session management error: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed 此错误不会中断函数;该图是成功创建的.但是这个错误是什么意思? "我不知道为什么,但是在sudoers文件中授予用户权限,然后使用sudo命令运行程序,修复了错误." 然而,这尚未解决错误的原因,以及它是否在所有正在进行的过程中都会影响. 是否有不需要编辑sudoers文件的解决方案? nb:我正在共享计算集群上进行这项工作. 解决方案 问题的答案是,是的,有一个不需要编辑sudoers文件的解决方案.我注意到在我的主
2 2023-05-25
编程技术问答社区
如何从两个测量时间中绘制绘图连接点?
这里的第一个问题! 我有两列数据,每一行都是一对值.我想垂直绘制第一列和第二列,并具有连接每对值的行,这在以下链接中看起来像该图: 如果您知道如何在任何工具(例如r或python,perl,excel)中做到这一点,请让我知道! 解决方案 和另一种R使用matpoints和matlines(和boxplot) dd
2 2023-05-24
编程技术问答社区
绘制大量外观多数点的Pythonic方法是什么?
我正在尝试绘制大量外观不同的点(形状,边缘颜色,面部,颜色等),并且发现绘制明显的方式(每个点使用plot)都非常很久.我看到了提高性能的各种方法,但发现这些方法要么降低了凸位外观的灵活性,要么最终比我看上去更低的水平要低得多. 例如,如果我有 fig, ax = matplotlib.pyplot.subplots() rands = numpy.random.random_sample((n,)) 其中n是大数字,然后使用plot绘制每个点 for x in range(n): ax.plot(x, rands[x], 'o', color=str(rands[x]), mec=str(1-rands[x])) 花费很长时间,似乎非常效率.通过一次绘制许多点 ,可以实现更快的结果 ax.plot(range(n), rands, 'o', color='b', mec='r') 但由于无法控制各个点的许多特征(在这里,例如color和mec都
0 2023-05-24
编程技术问答社区
Python提高功能速度
我正在编码自己的脚本以计算两个信号之间的关系.因此,我使用mlab.csd和mlab.psd函数来计算信号的CSD和PSD. 我的阵列X的形状为(120,68,68,815).我的脚本运行了几分钟,此功能是这个高度时间的热点. 有人知道我该怎么办?我对脚本性能的提高并不那么熟悉.谢谢! # to read the list of stcs for all the epochs with open('/home/daniel/Dropbox/F[...]', 'rb') as f: label_ts = pickle.load(f) x = np.asarray(label_ts) nfft = 512 n_freqs = nfft/2+1 n_epochs = len(x) # in this case there are 120 epochs channels = 68 sfreq = 1017.25 def compute_mean_psd_csd(x, n_
8 2023-05-24
编程技术问答社区
当使用plot()绘制线路时,为什么matplotlib会变得慢?
我想知道为什么我使用matplotlib绘制线条时会很慢?如何修复它? belows是演示代码.它使用plot()在两个随机生成的点之间绘制一条线. 在我的计算机上,'end = 100/200/500'结果'fps = 36.9/28.6/20'.我需要无尽的绘制线条,时间会变得更糟.如何解决? 谢谢! import numpy as np import matplotlib.pyplot as plt import time def draw_demo(): x = 100 plt.axis([0, x, 0, 1]) plt.ion() last = 50 TIME = 5 END = 1000 time_start = time.time() for i in range(0, END): random_num = np.random.random() if
0 2023-05-24
编程技术问答社区
Numpy阵列转换的性能改进
给定三个numpy 1D数组,我想将它们转换为以下: import numpy as np Xd = np.asarray([0, 0, 1, 1, 0.5]) Yd = np.asarray([0, 0, 0, 2.5, 2.5]) Zd = np.asarray([0, 1.5, 1.5, 1.5, 1.5]) points = np.stack([Xd, Yd, Zd], axis=1).reshape(-1, 1, 3) segments = np.concatenate([points[:-1], points[1:]], axis = 1) print(segments.shape) print(segments) 输出: (4, 2, 3) [[[0. 0. 0. ] [0. 0. 1.5]] [[0. 0. 1.5] [1. 0. 1.5]] [[1. 0. 1.5] [1. 2.
4 2023-05-24
编程技术问答社区
matplotlib tkagg后端性能
我有一个可以绘制大量数据的TKINTER应用程序,当画布上有大量数据时,我注意到PAN和缩放性能不佳. 查看tkagg_backend(如该功能和文档表明,仅一旦用户闲置,就应该重新绘制画布.但是,从当前和以前的经验来看,画布一直在更新(重绘)中缩放/锅.因此,我正在研究所涉及的特定功能,并对此有疑问. dynamic_update函数: def dynamic_update(self): 'update drawing area only if idle' # legacy method; new method is canvas.draw_idle self.canvas.draw_idle() canvas.draw_idle()函数: def draw_idle(self): 'update drawing area only if idle' if self._idle is False: re
0 2023-05-24
编程技术问答社区
如何使用Funcanimation使用Matplotlib更新和动画多个数字?
尝试创建一个读取序列数据并更新多个图形的程序(目前为1行和2个条形图,但有可能更多). 现在使用3个单独的调用funcanimation(),但是事实证明确实很慢,这不是很好,因为我仍然需要在将来添加更多动画数字的选择. 那么,我如何才能使其成为一个更新所有三个(可能更多)数字的单一娱乐场所(或类似的东西)?另外,我该怎么做才能加快速度? #figure for current amps = plt.figure(1) ax1 = plt.subplot(xlim = (0,100), ylim = (0,500)) line, = ax1.plot([],[]) ax1.set_ylabel('Current (A)') #figure for voltage volts = plt.figure(2) ax2 = plt.subplot() rects1 = ax2.bar(ind1, voltV, width1) ax2.grid(True) ax2.set_y
12 2023-05-23
编程技术问答社区
我如何迅速绘制数千个圆圈?
我正在尝试绘制几个(数千)圆对象 - 我没有太多与Python合作的经验.我有兴趣指定位置,半径和颜色.是否有更有效的方法来达到相同的结果?: import matplotlib.pyplot as plt xvals = [0,.1,.2,.3] yvals = [0,.1,.2,.3] rvals = [0,.1,.1,.1] c1vals = [0,.1,0..1] c2vals = [.1,0,.1,0] c3vals = [.1,.1,.1,.1] for q in range(0,4): circle1=plt.Circle((xvals[q], yvals[q]), rvals[q], color=[0,0,0]) plt.gcf().gca().add_artist(circle1) 解决方案 这里的关键是使用Collection.在您的情况下,您想制作PatchCollection. matplotlib通过使用收藏品优化了许多类
4 2023-05-23
编程技术问答社区
matplotlib慢慢使用大数据集,如何实现拆卸?
我使用matplotlib进行信号处理应用程序,我注意到它会在大型数据集上窒息.这是我真正需要改进的东西以使其成为可用的应用程序. 我正在寻找的是让matplotlib递减数据的一种方法.是否有设置,属性或其他简单的方法可以实现?欢迎有关如何实施此项的任何建议. 一些代码: import numpy as np import matplotlib.pyplot as plt n=100000 # more then 100000 points makes it unusable slow plt.plot(np.random.random_sample(n)) plt.show() 一些背景信息 我曾经在大型C ++应用程序上工作,我们需要在其中绘制大型数据集并解决此问题,我们用来利用数据的结构,如下: 在大多数情况下,如果我们想要一条线图,则数据被排序,甚至是等距的.如果是等距的,那么您可以直接从变焦矩形和逆轴转换中计算数据阵列中的启动和结束索引.如
0 2023-05-23
编程技术问答社区
Matplotlib AFM的进口极慢
导入时间不可接受: from matplotlib import pylab as plt --> 3.0124739 secs 这是CPROFILE的输出,清楚地表明了问题为Afm.py,这是的某个接口. Adobe字体指标.. matplotlib版本为1.4.0 -Ubuntu 14.04 5994612 function calls (5992123 primitive calls) in 4.702 seconds Ordered by: internal time ncalls tottime percall cumtime percall filename:lineno(function) 182 1.589 0.009 2.372 0.013 afm.py:220(_parse_kern_pairs) 215 0.746 0.003 1.420
4 2023-05-23
编程技术问答社区
Matplotlib,Savefig()的替代方案以保存到CSTRING对象时提高性能吗?
我正在尝试加快将图表保存到图像的过程.现在,我正在创建一个CSTRING对象,在其中使用SaveFig将图表保存到将图表保存到;但是,我真的非常感谢任何帮助来改善这种保存图像的方法.我必须进行数十次操作,而Savefig命令非常慢.必须有一种更好的方法.我读了一些有关将其保存为未压缩的原始图像的东西,但我对如何做的没有任何线索.如果我也可以更快地切换到另一个后端. 我真的不在乎agg. IE: RAM = cStringIO.StringIO() CHART = plt.figure(.... **code for creating my chart** CHART.savefig(RAM, format='png') 我一直在使用figurecanvasagg后端使用matplotlib. 谢谢! 解决方案 如果您只想要一个原始的缓冲区,请尝试fig.canvas.print_rgb,fig.canvas.print_raw等(两者之间的区别是ra
0 2023-05-23
编程技术问答社区
有效地绘制许多球体
我需要在一张图片中绘制许多大小球.以下代码有效,但要运行的时间非常长. import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy fig = plt.figure() ax = fig.gca(projection='3d') ax.set_aspect('equal') u = numpy.linspace(0, 2*numpy.pi, 100) v = numpy.linspace(0, numpy.pi, 100) x = numpy.outer(numpy.cos(u), numpy.sin(v)) y = numpy.outer(numpy.sin(u), numpy.sin(v)) z = numpy.outer(numpy.ones(numpy.size(u)), numpy.cos(v)) for k in range(200): c = n
0 2023-05-23
编程技术问答社区
matplotlib非常慢。这是否正常?
我正在用Matplotlib创建几个PDF图,该图由400个子图组成.每个人只有5个数据点.在一台好的计算机上需要420秒钟才能节省5 pdf图片.有什么方法可以优化代码,或者对matplotlib的正常方式? 绘制代码的一部分: plot_cnt = 1 for k in np.arange(K_min, K_max + 1): for l in np.arange(L_min, L_max + 1): ax = plt.subplot(grid[0], grid[1], plot_cnt) plot_cnt += 1 plt.setp(ax, 'frame_on', False) ax.set_ylim([-0.1, 1.1]) ax.set_xlabel('K={},L={}'.format(k, l), size=3) ax.set_xlim([-0.1, 4.1]
0 2023-05-23
编程技术问答社区
matplotlib savefig性能,在循环中保存多个pngs
我希望找到一种优化以下情况的方法.我有一个用matplotlib的Imshow创建的大轮廓图.然后,我想使用此轮廓图来创建大量的PNG图像,其中每个图像是通过更改X和Y限制和纵横比的轮廓图像的一小部分. 因此,循环中没有绘图数据发生变化,只有轴线限制和纵横比在每个PNG图像之间发生变化. 以下MWE在"无花果"文件夹中创建了70个PNG图像,证明了简化的想法.大约80%的运行时间由fig.savefig('figs/'+filename)占用. 我研究了以下内容而没有提出改进: matplotlib的替代方案,重点是速度 - 我很难找到具有相似要求的轮廓/表面图的任何示例/文档 多处理 - 我在这里看到的类似问题似乎需要在循环中调用fig = plt.figure()和ax.imshow,因为无花果和斧头无法腌制.就我而言,这将比实施多处理所获得的任何速度收益都要昂贵. 我感谢您可能有任何见识或建议. import numpy as np impor
6 2023-05-23
编程技术问答社区
具有~2000万个样本点和数千兆字节数据的交互式大型绘图
我在这里遇到了问题(与我的RAM):它无法保存我要绘制的数据.我确实有足够的高清空间.是否有任何解决方案可以避免我的数据集的"阴影"? 具体而言,我处理数字信号处理,必须使用高样本速率.我的框架(GNU无线电)保存了二进制中的值(避免使用过多的磁盘空间).我打开它.之后,我需要绘制.我需要绘图可缩放和交互式.这是一个问题. 对此有任何优化潜力,或其他可以处理较大数据集的软件/编程语言(例如R左右)?实际上,我想要更多的数据.但是我没有其他软件的经验. gnuplot失败,采用类似的方法.我不知道R(喷气). import matplotlib.pyplot as plt import matplotlib.cbook as cbook import struct """ plots a cfile cfile - IEEE single-precision (4-byte) floats, IQ pairs, binary txt - index,in-phase,
4 2023-05-23
编程技术问答社区
如何在二维图上找到自交点的数量?
我有两个numpy阵列 x 和 y : x = [-256.70946838 -188.26946838 -83.86946838 29.81053162 131.89053162 213.67053162 271.09053162 315.17053162 310.53053162 296.03053162 252.53053162 184.67053162 82.59053162 -33.40946838 -139.54946838 -213.78946838 -271.20946838 -317.02946838 -310.64946838 -298.46946838 -256.70946838] y = [ 9.71224758e-02 -3.19097822e-02 -4.80388145e-02 6.48644113e-02 -3.19097822e-02 9.71224758e-02 -1.57807500e-02 6.4
4 2023-05-23
编程技术问答社区
内插一维非函数数据点
我很难找到我的数据点的插值.该线应略微类似于负相位二次(即像向后的" C'"). 由于这不是一个函数(x可以具有多个值的y值),因此我不确定要使用什么插值. 我认为也许我应该翻转轴以使用诸如UnivariateSpline之类的东西创建插值点/线,然后在我绘制时将其翻转回去? 这是单个点的图: 这是我的代码: import datetime as dt import matplotlib.pyplot as plt from scipy import interpolate file = open_file("010217.hdf5", mode = "a", title = 'Sondrestrom1') all_data = file.getNode('/Data/Table Layout').read() file.close() time = all_data['ut1_unix'] #time in seconds since 1/1/197
2 2023-05-23
编程技术问答社区
从离散数据内插的曲线切线
我想知道是否有一种方法可以找到从离散数据曲线的切线. 例如: x = np.linespace(-100,100,100001) y = sin(x) 所以x值是整数,但是如果我们想在x = 67.875之类的东西上找到切线怎么办? 我一直在努力弄清楚numpy.interp是否有效,但到目前为止没有运气. 我还发现了几个类似的示例,例如一个,但无法将这些技术应用于我的案件:( 我是Python的新手,还不完全知道一切工作原理,因此任何帮助都将不胜感激... 这就是我得到的: from scipy import interpolate import matplotlib.pyplot as plt import numpy as np x = np.linspace(-100,100,10000) y = np.sin(x) tck, u = interpolate.splprep([y]) ti = np.linspace(-100,100,10000)
8 2023-05-23
编程技术问答社区