我使用的是Python 3.2.1,我无法导入StringIO模块.我使用
io.StringIO和它的作品,但我不能使用它numpy的genfromtxt是这样的:
x="1 3\n 4.5 8"
numpy.genfromtxt(io.StringIO(x))
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
TypeError: Can't convert 'bytes' object to str implicitly
Run Code Online (Sandbox Code Playgroud)
当我写import StringIO它时说
ImportError: No module named 'StringIO'
Run Code Online (Sandbox Code Playgroud) 我有一个中等大小的数组(例如1500x3000)我想要按比例绘制,因为它是一个图像.但是,垂直和水平刻度是非常不同的.为简化起见,假设有一米/行和10 /列.然后该图应该产生一个c的图像.1500x30000.我使用kwarg范围为scale和aspect = 1以避免变形.通过使用绘图窗口(QT4)和imshow()或使用savefig(),我从未成功地以大规模和全分辨率生成图像.
我看过很多提出的解决方案,如表示在这里,在这里,或在这里和那里或存在的情况下,这是一个错误.我已经改变了我的matplotlibrc并将其放在〜/ .config/matplotlib中以尝试强制我的display/savefig选项但无济于事.我也试过pcolormesh()但没有成功.我使用来自Ubuntu 14.04和QT4Agg的repo的python 2.7和matplotlib 1.3作为后端.我也尝试了TkAgg,但速度很慢并且给出了相同的结果.我的印象是,在x轴上分辨率是正确的,但它在垂直方向上肯定是下采样的.这是一段应该模拟我的问题的代码.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors
R, C = 1500, 3000
DATA = np.random.random((R, C))
DATA[::2, :] *= -1 # make every other line negative
Yi, Xi = 1, 10 # increment
CMP = 'seismic'
ImageFormat ='pdf'
Name = 'Image'
DataRange = (np.absolute(DATA)).max() # I want my data centred on 0
EXTENT = [0, Xi*C, 0 ,Yi*R] …Run Code Online (Sandbox Code Playgroud)