python – imshow和histogram2d:无法让它们工作
发布时间:2021-02-21 09:24:02 所属栏目:Python 来源:互联网
导读:我正在学习 Python,这是我的第一个问题.我已经阅读了与imshow的使用相关的其他主题,但没有找到任何有用的东西.对不起,我的英语不好. 我在这里绘制了一组点,左图: points (left) and image (right) 现在我想看一个点密度的图像,所以我使用了imshow和histogram
|
我正在学习 Python,这是我的第一个问题.我已经阅读了与imshow的使用相关的其他主题,但没有找到任何有用的东西.对不起,我的英语不好. 我在这里绘制了一组点,左图: points (left) and image (right) 现在我想看一个点密度的图像,所以我使用了imshow和histogram2d,我在上一个链接中得到了右边的图像. 图像与点的分布不对应.这怎么可能?我已按照帮助中的说明进行操作,甚至更改了一些参数,但没有任何效果:( 代码是: import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
j,h,k = np.loadtxt("test.dat",usecols=(2,4,6),
unpack=True)
# límites
xmin = -0.5
xmax = 3.0
ymin = -0.5
ymax = 4.0
# colores
j_h = j - h
h_k = h - k
# no todas las estrellas son graficadas
x1 = 0.5
y1 = 0.5
b = 2.2
c = y1 - b * x1
x = y = np.array([])
for xi,yi in zip(h_k,j_h):
if xi < (yi - c) / b:
x = np.append(x,xi)
y = np.append(y,yi)
# gráfico
fig = plt.figure(figsize=(8,7))
ax = fig.add_subplot(111)
#ax.plot(x,y,"go")
ax.set_xlabel(r"X",fontsize=14)
ax.set_ylabel(r"Y",fontsize=14)
ax.axis([xmin,xmax,ymin,ymax])
# imagen
rango = [[xmin,xmax],[ymin,ymax]]
binsx = int((xmax - xmin) / 0.05)
binsy = int((ymax - ymin) / 0.05)
binsxy = [binsx,binsy]
H,xedges,yedges = np.histogram2d(x,range=rango,bins=binsxy)
extent = [yedges[0],yedges[-1],xedges[0],xedges[-1]]
cp = ax.imshow(H,interpolation='bilinear',extent=extent,cmap=cm.jet)
fig.colorbar(cp)
plt.show()
所用数据的链接如下: https://dl.dropbox.com/u/10411539/python/test.dat 任何帮助表示赞赏! 解决方法尝试不同的插值,并转置矩阵以使其在同一轴上:cp = ax.imshow(H.transpose()[::-1],interpolation='nearest',cmap=cm.jet) (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
