前言:我看过these,但我不能从答案中找出如何制作情节。另外,我是python和matplotlib的新手。在
我有一个表格的数据文件X Y Z
0.05 1 z
0.10 1 z
... ... ...
0.95 1 z
0.05 2 z
... ... ...
... ... ...
0.95 10 z
z在[-0.02:0.5]中。这些结果是190(x,y,z)点。在
我用这种方式获取数据
^{pr2}$
如链接所示,我将它们转换为网格mu = []
alpha = []
tau = []
for elements in data:
mu.append(elements[0])
alpha.append(elements[1])
tau.append(elements[2])
x_data = np.asarray(mu)
y_data = np.asarray(alpha)
z_data = np.asarray(tau)
xi = np.linspace(0.05,0.95,19)
yi = np.linspace(1,10,10)
ar = griddata(x_data,y_data,z_data,xi,yi,interp='nn')
然后我绘制这个图:我希望每个(x,y)坐标都有一个以坐标为中心的正方形,用一个彩色条显示z值。在cmap = mpl.colors.LinearSegmentedColormap.from_list('my_colormap',
['white','grey','black'],256)
img = plt.imshow(ar,interpolation='nearest',cmap =
cmap,origin='lower')
plt.colorbar(img,cmap=cmap)
我得到这个:
首先,我希望颜色条与情节本身的高度相同。我不明白如何避免这些垃圾。在
此外,如果您查看文件,您会立即发现范围不正确:x必须在[0.05:0.95]中,y必须在[1:10]中。y只是偏移了1(所有z=0的白线应该是y=1而不是y=0),而x假设的值我无法理解。在
重要的是要注意,除了这些,曲线图在z值和趋势上都是正确的。在
如何解决我的问题?在