使用 Python 绘制 2D 直方图

发布于 11-26 03:15 字数 543 浏览 2 评论 0原文

我正在尝试使用这些代码在 Python 中绘制 2D 直方图

from math import *
import pylab as p
import matplotlib.pyplot as plt
import numpy as np

x=part.points[:,0]
y=part.points[:,1]
z=part.points[:,2]

H, xedges, yedges = np.histogram2d(x, y, bins=(128,128))
H.shape, xedges.shape, yedges.shape

extent = [yedges[0], yedges[-1], xedges[-1], xedges[0]]

plt.imshow(H, extent=extent, interpolation='nearest')

plt.colorbar()
plt.xlabel("x")
plt.ylabel("y")
plt.show()

一切正常:我有一个代表每个单元格中的计数的颜色条。问题是我想要计数的日志,但函数 histogram2d 没有任何选项。

I'm trying to plot a 2D histogram in Python using these code

from math import *
import pylab as p
import matplotlib.pyplot as plt
import numpy as np

x=part.points[:,0]
y=part.points[:,1]
z=part.points[:,2]

H, xedges, yedges = np.histogram2d(x, y, bins=(128,128))
H.shape, xedges.shape, yedges.shape

extent = [yedges[0], yedges[-1], xedges[-1], xedges[0]]

plt.imshow(H, extent=extent, interpolation='nearest')

plt.colorbar()
plt.xlabel("x")
plt.ylabel("y")
plt.show()

Every thing works fine: I have a color bar which represent the counts in each cells. The thing is that I would like to have the log of the count but the function histrogram2d does not have any option for that.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

ζ澈沫2024-12-03 03:15:08

我想你可以简单地这样做

H_log = np.log(H)
…
plt.imshow(H_log,…)

(假设你没有空计数)。

如果您想要 3D 条形图,您可以采用 中提供的 示例 Matplotlib 文档。

更一般地说,当您正在寻找一些东西时,我衷心建议您查看非常有用的 Matplotlib gallery特定的绘图功能。

I guess that you could simply do

H_log = np.log(H)
…
plt.imshow(H_log,…)

(assuming that you don't have null counts).

If you want a 3D bar chart instead, you can adapt the example provided in the Matplotlib documentation.

More generally, I heartily recommend that you check the very useful Matplotlib gallery, when you are looking for some specific graphing capabilities.

仙女山的月亮2024-12-03 03:15:08

在此答案中有一个针对 2D 和 3D 散点图和气泡直方图的解决方案。

points, sub = hist2d_scatter( radius, density, bins=4 )

points, sub = hist3d_scatter( temperature, density, radius, bins=4 )

其中 sub 是一个 matplotlib "Subplot" 实例(3D 或非 3D),而 points 包含用于散点图。
在此处输入图像描述

In this answer there is a solution for 2D and 3D Scatter and Bubble Histograms.

points, sub = hist2d_scatter( radius, density, bins=4 )

points, sub = hist3d_scatter( temperature, density, radius, bins=4 )

Where sub is a matplotlib "Subplot" instance (3D or not) and pointscontains the points used for the scatter plot.
enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文