- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想使用 basemap 创建密度图。我拥有的数据未经过网格化且重复或彼此非常接近。我已经尝试对数据进行网格化,然后使用 pcolor 绘制 bin 的数量,但即使所有数据集的长度都相等,我仍然会收到缓冲区大小错误。我最初的想法是使用下面的 basemap 脚本,但我只能使用散点图,尽管这不会给我密度图。
m = Basemap(resolution='f',projection='merc',
lon_0=160,
llcrnrlat=-30.0,
urcrnrlat=30.0,
llcrnrlon=100.,
urcrnrlon=270.0,
lat_ts=0.0)
m.drawmapboundary(fill_color='white')
m.fillcontinents(color='#F5DEB3',lake_color='#85A6D9')
m.drawcoastlines(color='black', linewidth=.4)
m.drawcountries(color='#6D5F47', linewidth=.4)
m.drawmeridians(np.arange(0, 360, 20),
labels=[0,0,0,1],
color='black',
dashes=[1,0],
labelstyle='+/-',
linewidth=0.2)
m.drawparallels(np.arange(-90, 90, 10),
labels=[1,0,0,0],
color='black',
dashes=[1,0],
labelstyle='+/-',
linewidth=0.2)
lats =
array([ 14.375, 14.125, 14.125, 9.375, 13.625, 14.375, 5.625,
13.875, 14.625, 5.875, 8.875, 5.625, 8.875, 13.375,
11.125, 8.375, 12.375, 6.125, 5.375, 8.375, 7.375,
7.875, 14.375, 14.875, 9.875, 11.125, 14.875, 7.875,
9.125, 11.625, 5.125, 10.875, 5.125, 12.125, 12.625,
8.625, 5.125, 8.375, 11.625, 11.375, 12.875, 14.375,
8.875, 8.375, 6.375, 8.625, 5.875, 8.125, 9.375,
5.875, 8.125, 8.875, 5.375, 8.875, 5.625, 11.875,
9.875, 9.875, 10.875, 11.375, 9.875, 9.375, 13.125,
14.125, 8.125, 14.875, 9.875, 9.625, 10.625, 12.125,
9.375, 5.625, 13.625, 6.375, 10.125, 14.875, 8.875,
5.125, 6.125, 8.625, 6.875, 9.375, 9.125, 9.375,
13.625, 6.125, 6.125, 6.875, 11.375, 13.375, 10.375,
6.875, 7.625, 7.625, 13.875, 5.125, 6.125, 14.125,
7.375, 5.375])
lons = array([ 122.125, 125.875, 122.375, 132.125, 124.375, 122.625,
206.125, 122.625, 120.375, 187.625, 243.625, 161.625,
220.375, 121.875, 125.625, 130.125, 219.625, 223.875,
223.375, 190.125, 132.875, 185.875, 122.625, 120.875,
259.375, 125.875, 204.875, 131.875, 130.875, 125.375,
234.375, 241.375, 188.125, 124.375, 124.375, 140.375,
205.625, 130.875, 256.875, 239.375, 124.125, 123.125,
131.625, 126.375, 241.125, 130.875, 233.625, 184.375,
205.125, 169.375, 150.375, 183.375, 168.875, 239.625,
180.125, 241.375, 131.375, 244.875, 244.375, 125.625,
131.375, 150.125, 203.625, 122.125, 243.125, 159.125,
125.625, 243.375, 125.875, 127.375, 130.125, 146.625,
203.125, 185.125, 204.625, 120.625, 130.125, 233.875,
131.875, 258.625, 130.125, 173.375, 258.125, 129.125,
137.875, 215.625, 214.125, 234.625, 125.375, 136.625,
231.125, 145.625, 128.625, 232.875, 125.125, 145.125,
239.875, 138.625, 241.375, 169.625])
data =
array([ 84.8125 , 81.6875 , 79.75 , 78.5625 , 70.8125 , 70.75 ,
69.0625 , 69. , 67.3125 , 63.65625, 63.375 , 62.5625 ,
62.46875, 61.09375, 60.4375 , 59.21875, 58.84375, 58.8125 ,
58.75 , 58.4375 , 57.8125 , 57.375 , 57.1875 , 57.15625,
57.15625, 57.09375, 56.96875, 56.875 , 56.3125 , 56.28125,
56.1875 , 55.59375, 55.5 , 55.46875, 55.4375 , 55.375 ,
55.3125 , 55.21875, 55.21875, 55.15625, 54.90625, 54.75 ,
54.6875 , 54.65625, 54.625 , 54.59375, 54.4375 , 54.34375,
54.21875, 54.0625 , 53.9375 , 53.75 , 53.65625, 53.21875,
53.15625, 53.0625 , 52.78125, 52.75 , 52.4375 , 52.25 ,
52.0625 , 51.71875, 51.71875, 51.59375, 51.4375 , 51.3125 ,
51.28125, 51.28125, 51.25 , 51.03125, 51. , 50.96875,
50.9375 , 50.875 , 50.8125 , 50.75 , 50.71875, 50.6875 ,
50.5 , 50.4375 , 50.4375 , 50.28125, 50.21875, 50.125 ,
50. , 49.5 , 49.5 , 49.40625, 49.21875, 49.21875,
49.0625 , 48.96875, 48.53125, 48.46875, 48.375 , 48.28125,
48.21875, 48.0625 , 47.875 , 47.84375])
关于如何获得这些数据的密度图有什么想法吗?感谢帮助。/M
最佳答案
如果您有兴趣对网格框中的每个经纬度进行频率计数,可以使用 numpy 函数 histogram2d。
以下代码可能是您要查找的内容:
nx, ny = 10, 3
# compute appropriate bins to histogram the data into
lon_bins = numpy.linspace(lons.min(), lons.max(), nx+1)
lat_bins = numpy.linspace(lats.min(), lats.max(), ny+1)
# Histogram the lats and lons to produce an array of frequencies in each box.
# Because histogram2d does not follow the cartesian convention
# (as documented in the numpy.histogram2d docs)
# we need to provide lats and lons rather than lons and lats
density, _, _ = numpy.histogram2d(lats, lons, [lat_bins, lon_bins])
# Turn the lon/lat bins into 2 dimensional arrays ready
# for conversion into projected coordinates
lon_bins_2d, lat_bins_2d = numpy.meshgrid(lon_bins, lat_bins)
# convert the xs and ys to map coordinates
xs, ys = m(lon_bins_2d, lat_bins_2d)
plt.pcolormesh(xs, ys, density)
plt.colorbar(orientation='horizontal')
# overlay the scatter points to see that the density
# is working as expected
plt.scatter(*m(lons, lats))
plt.show()
编辑:我添加了更多内嵌评论以帮助理解/提高可读性。
关于python - basemap 和密度图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11507575/
;) 如果您想将 2mb 数据编码到 2d 条码中,哪种 2 条码适合作为起点或推荐。 今天有很多不同类型的二维条码,Aztec 二维条码、maxicodes、Pdf417、Microsoft HCC
我想创建一个具有密度的 3d 图。 我使用函数 density 首先为特定的 x 值创建一个二维图,然后该函数创建密度并将它们放入 y 变量中。现在我有第二组 x 值并将其再次放入密度函数中,然后我得
我对 geom_density 的以下变体的含义感到困惑在ggplot中: 有人可以解释这四个电话之间的区别: geom_density(aes_string(x=myvar)) geom_densi
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
重要编辑:最初的问题是关于获取 double 和分数的密度。当我得到 double 而不是分数的答案时,我正在改变主题以结束这个问题。原问题的另一半是here 新问题 我想找出 2 个给定数字之间的
如何计算 AVD 的抽象 LCD 密度? 最佳答案 抽象 LCD 密度以每英寸点数为单位(参见 docs)。 wikipedia article on Pixel density有一个有用的部分解释了
我使用(在 Windows 下)以下命令 magick convert -units pixelsperinch file_in -density 600 file_out 设置 JPG 图像的 dp
手机分辨率基础知识(dpi,dip计算) 1.术语和概念 术语 说明 备注 screen size(屏幕尺寸)
我尝试创建具有两个以上组的 Highcharts 密度。我找到了一种手动添加它们的方法,但必须有更好的方法来处理组。 示例:我想创建一个类似于下面的 ggplot 图表的 highchart,而不是将
我们有以下代码 convert foo.pdf foo.tiff 这多年来一直运行良好,并且由此产生的 tiff 是一个合理的打印质量。 我们刚刚升级了 imagemagick,现在 tiff 的分辨
ggplot2 中的 stats_ 函数创建特殊变量,例如stat_bin2d 创建一个名为 ..count.. 的特殊变量。在哪里可以找到列出哪个 stat_ 函数返回哪些特殊变量的文档? 我查看了
考虑以下几行。 p <- ggplot(mpg, aes(x=factor(cyl), y=..count..)) p + geom_histogram() p + stat_summary(fu
我想模拟 Samsung Galaxy Mini。我将分辨率设置为 240x320,将 LCD 密度设置为 180。这是否正确? 最佳答案 是的,绝对正确.... 关于android - Galaxy
我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就分享一下Android中常用的一些辅助方法: 获取屏幕高度:
我创建了一个直方图/密度图函数,我希望 y 轴是计数而不是密度,但在参数化其 binwidth 时遇到问题。 我正在使用基于 http://docs.ggplot2.org/current/geom_
我试过四处搜索,但没有任何运气。我开发了一些使用大量图像的应用程序(大小大多为 200*200 像素)。我想通过添加不同尺寸的图像来支持不同的屏幕尺寸,但由于这会增加 apk 的许多兆字节,我需要知道
我正在尝试生成一个较小的图形来可视化 Pandas 时间序列。然而,自动生成的 x-ticks 不适应新的大小并导致重叠的刻度。我想知道如何调整 x-ticks 的频率?例如。对于这个例子: figs
我正在使用 geom_density 制作一系列密度图从数据框中,并使用 facet_wrap 按条件显示它,如: ggplot(iris) + geom_density(aes(x=Sepal.Wi
我已经从 From this example 了解了 APK 拆分概念 我已经尝试在我的项目中实现它,但只有 Drawable 文件夹受到影响。我也想拆分 Mipmap 文件夹。 下面是我的 buil
我需要在 javascript 中更改 JPG/PNG 类型图像的分辨率/密度。我需要这样做的原因是我可以将图像发送到第三方 API,然后第三方 API 将根据分辨率/密度元数据知道要打印的每英寸像素
我是一名优秀的程序员,十分优秀!