加入收藏 | 设为首页 | 会员中心 | 我要投稿 商洛站长网 (https://www.0914zz.com/)- AI应用、CDN、边缘计算、云计算、物联网!
当前位置: 首页 > 编程开发 > Python > 正文

python C imshow和histogram2d:无法让它们工作

发布时间:2023-12-22 07:34:57 所属栏目:Python 来源:DaWei
导读: 我正在学习
Python,这是我的第一个问题.我已经阅读了与imshow的使用相关的其他主题,但没有找到任何有用的东西.对不起,我的英语不好.

我在这里绘制了一组点,左图:
points (left) a

我正在学习 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)

(编辑:商洛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章