我正在尝试使用matplotlib保存我的图表; 但是,图像保存为空白.
这是我的代码:
plt.subplot(121)
plt.imshow(dataStack, cmap=mpl.cm.bone)
plt.subplot(122)
y = copy.deepcopy(tumorStack)
y = np.ma.masked_where(y == 0, y)
plt.imshow(dataStack, cmap=mpl.cm.bone)
plt.imshow(y, cmap=mpl.cm.jet_r, interpolation='nearest')
if T0 is not None:
plt.subplot(123)
plt.imshow(T0, cmap=mpl.cm.bone)
#plt.subplot(124)
#Autozoom
#else:
#plt.subplot(124)
#Autozoom
plt.show()
plt.draw()
plt.savefig('tessstttyyy.png', dpi=100)
Run Code Online (Sandbox Code Playgroud)
并且tessstttyyy.png是空白的(也尝试使用.jpg)
所以我试图使用Axes对象来控制我的matlibplot数字.我不使用PLT(又名进口matlibplot.pyplot如PLT),因为我在嵌入我的每Tkinter的GUI图形此.
但是,我也在使用图中的子图,所以类似于:
a = f.add_subplot(121)
a2 = f.add_subplot(122)
a.plot(fn2,mag)
a2.bar(range(0,10), magBin, width)
Run Code Online (Sandbox Code Playgroud)
这一切都很好,我可以使用轴属性来控制事物(ieaaxesMethod()),但我想要我的条形图的字符串标签,按此,请参阅代码.
我的困境是我无法使用
plt.xticks(ind+width, ('G1', 'G2', 'G3', 'G4', 'G5') )
Run Code Online (Sandbox Code Playgroud)
如在示例中,因为如果我想将它嵌入到我的tkinter gui中,我就不能使用plt.我只能使用Axes对象做什么.我正在尝试使用a2.set_xticks,但这不允许字符串作为我的条形图所需的刻度功能.
在这方面的任何帮助将是惊人的!
泰勒
基本上,当我尝试在numpy矩阵上执行代数运算时,我在python中遇到内存错误.变量u,是一个双倍的大矩阵(在失败的情况下,它是一个288x288x156的双倍矩阵.我只在这个巨大的情况下得到这个错误,但我能够在其他大型矩阵上做到这一点,只是不是这么大).这是Python错误:
Traceback (most recent call last):
File "S:\3D_Simulation_Data\Patient SPM Segmentation\20 pc
t perim erosion flattop\SwSim.py", line 121, in __init__
self.mainSimLoop()
File "S:\3D_Simulation_Data\Patient SPM Segmentation\20 pc
t perim erosion flattop\SwSim.py", line 309, in mainSimLoop
u = solver.solve_cg(u,b,tensors,param,fdHold,resid) # Solve the left hand si
de of the equation Au=b with conjugate gradient method to approximate u
File "S:\3D_Simulation_Data\Patient SPM Segmentation\20 pc
t perim erosion flattop\conjugate_getb.py", line 47, in solv
e_cg
u = u + alpha*p
MemoryError
Run Code Online (Sandbox Code Playgroud)
u = u + …
我正在尝试使用suptitle打印标题,我想要取代这个标题.目前我正在使用:
self.ui.canvas1.figure.suptitle(title)
Run Code Online (Sandbox Code Playgroud)
其中figure是matplotlib图(canvas1是mplCanvas,但这不相关),title是python字符串.
目前,这是有效的,除了我稍后再次运行此代码时,它只是在旧的顶部打印新文本,导致一个装饰,不可读的标题.
你如何取代旧suptitle的数字,而不是仅仅打印?
谢谢,
泰勒
保存图形时,Matlab使用什么功能?例如,当用户选择"文件">"另存为..."然后选择.png或其他图像格式时,幕后发生了什么?
我问,因为我正在尝试自动保存,但是当我使用saveas或时print,生成的图像确实是像素化的.但是,当我使用上述方法保存图形时,图像看起来非常好.
我应该使用什么方法从命令行保存我的数字?数字窗口使用的实际方法可行,但如果你们有更好的解决方案,我会对它进行评估!
我正在考虑使用亚马逊云来满足我的所有模拟需求.生成的sim文件非常大,我想将它们移动到我的本地驱动器以便于分析,等等.您必须为移动的每个数据付费,因此我希望尽可能小地压缩我的所有SIM卡.它们只是以.mat文件形式保存的numpy数组,使用:
import scipy.io as sio
sio.savemat(filepath, do_compression = True)
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,压缩numpy数组的最佳方法是什么(它们目前存储在.mat文件中,但我可以使用任何python方法存储它们),使用python压缩保存,linux压缩,或两者兼而有之?
我在linux环境中,我对任何类型的文件压缩都持开放态度.
我试图让64位版本的python启动并运行我编写的程序.该程序使用我在PyQt4中编写的gui.我找不到64位版本的PyQt4,并且在尝试使用32位PyQt4和64位版本的python时出现以下错误:
S:\src>SimLauncher.py
Forcing DISTUTILS_USE_SDK=1
Traceback (most recent call last):
File "SimLauncher.py", line 42, in <module>
from SwSim import SwSim
File "SwSim.py", line 13, in <module>
from PyQt4 import QtSql,QtGui
ImportError: DLL load failed: %1 is not a valid Win32 application.
Run Code Online (Sandbox Code Playgroud)
显然有一个不相容的.我尝试了这个修复,但我得到了同样的错误:
http://code.google.com/p/pyqt4-win64-binaries/downloads/list
Lemme知道你是否知道如何解决这个问题!
我正在尝试使用matplotlib imshow()将矩阵覆盖在另一个矩阵上.我希望叠加矩阵是红色的,而"背景矩阵"是骨骼,色彩映射明智.因此,简单地添加图像不起作用,因为您只能有一个色彩图.除了使用imshow()添加矩阵之外,我还没有找到另一种"叠加"的方法.
我试图或多或少地替换这个matlab 模块.
请让我知道我有什么替代品!
我正在尝试计算3D numpy数组的体积(或表面积).在许多情况下,体素是各向异性的,并且我在每个方向上具有像素到厘米的转换因子.
有没有人知道找到工具包或包来做上述的好地方?
现在,我有一些内部代码,但我希望在准确性方面升级到更具工业实力的东西.
Edit1:这是一些(差)样本数据.这比典型的球体小得多.我可以在生成它时添加更好的数据!它在(自我)肿瘤脑肿瘤中.
是否有以下每个的等效python函数(可能在PIL ??):
边缘(图像,'canny')
strel( '线',..)
strel( '钻石',1)
imdilate(...)
imfil(...)
imerode(...)
medfilt2(...)
我的所有模拟代码都在python中,但不是IC代!我想让我的IC生成到python中,所以每次运行sim时我都不必运行matlab.
谢谢,
tylerthemiler
我正在尝试使用matlab转换图像,我必须具有浓度.我希望它显示图像绿色部分的浓度值范围,如下所示:

我加载图像并尝试更改颜色贴图:
>> ex1 = imread('C:\Users\Tyler\Documents\Dropbox\ex1.png');
>> imshow(ex1)
>> colormap(grey)
Run Code Online (Sandbox Code Playgroud)
这会改变颜色条的外观,但绝对不影响图像本身.它仍然是绿色,下面是紫色.为什么这不会改变图像,就像改变文档中的颜色图一样.
泰勒
我试图使用matplotlib在画布上的图像上绘制透明多边形:
画布类的代码:
def update_figure(self, dataOverride = None):
if self.data is not None or dataOverride is not none:
FigureCanvas.updateGeometry(self)
self.axes.clear()
if dataOverride is not None:
self.axes.imshow(dataOverride, cmap = self.getColorMap())
else:
self.axes.imshow(self.data, cmap = self.getColorMap())
self.draw()
Run Code Online (Sandbox Code Playgroud)
代码我遇到问题:
def renderPoly(self, pointListX, pointListY):
#Adds in picture to self.ui.canvas2.axes
self.ui.canvas2.update_figure()
#Code that draws polygon with len(pointListX) points
#with the points at pointListX and pointListY over the
#current image in self.ui.canvas2.update_figure()
Run Code Online (Sandbox Code Playgroud)
所以,我想用self.ui.canvas2.axes中的imshow()'ed图片放置一个半透明的多边形来替换注释.
有什么建议??
谢谢,
tylerthemiler
有很多示例,您可以使用rspec,硒和水豚来运行以如下方式开始的测试:
it "does something", :js => true do
Run Code Online (Sandbox Code Playgroud)
您可以通过运行“ rake spec”来运行所有内容,但是如何运行一个水豚/硒测试?我无法弄清楚我的一生。