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

python – imshow和histogram2d:无法让它们工作,第1张

概述我正在学习 Python,这是我的第一个问题.我已经阅读了与imshow的使用相关的其他主题,但没有找到任何有用的东西.对不起,我的英语不好. 我在这里绘制了一组点,左图: points (left) and image (right) 现在我想看一个点密度的图像,所以我使用了imshow和histogram2d,我在上一个链接中得到了右边的图像. 图像与点的分布不对应.这怎么可能?我已按照帮助中 我正在学习 Python,这是我的第一个问题.我已经阅读了与imshow的使用相关的其他主题,但没有找到任何有用的东西.对不起,我的英语不好.

我在这里绘制了一组点,左图:

points (left) and image (right)

现在我想看一个点密度的图像,所以我使用了imshow和histogram2d,我在上一个链接中得到了右边的图像.

图像与点的分布不对应.这怎么可能?我已按照帮助中的说明进行 *** 作,甚至更改了一些参数,但没有任何效果:(

代码是:

import numpy as npimport matplotlib.pyplot as pltimport matplotlib.cm as cmj,h,k = np.loadtxt("test.dat",usecols=(2,4,6),\    unpack=True)# límitesxmin = -0.5xmax =  3.0ymin = -0.5ymax =  4.0# coloresj_h = j - hh_k = h - k# no todas las estrellas son graficadas    x1 = 0.5y1 = 0.5b  = 2.2c  = y1 - b * x1x = 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áficofig = 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])# imagenrango = [[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)
总结

以上是内存溢出为你收集整理的python – imshow和histogram2d:无法让它们工作全部内容,希望文章能够帮你解决python – imshow和histogram2d:无法让它们工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1206756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存