我是蟒蛇初学者,我有一个问题我解决不了。我需要用我在txt中得到的矩阵做一个2d的超音波,我也可以在xls中得到它。矩阵示例:
4.52 4.54 4.52 4.44 4.34 4.28
5.10 4.92 4.82 4.80 4.66 4.44
6.12 5.80 5.57 5.50 5.15 4.70
6.47 6.54 6.27 6.13 6.21 5.97
8.11 8.73 8.70 8.63 8.84 8.55我可以在密码里得到它:
a = np.loadtxt('matrix.txt')
然后我会得到它。因此,我有一部分代码,它可以像一个例子,但是我不明白如何在这里集成我的矩阵:
import matplotlib.pyplot as plt
n = 100000
x = np.random.standard_normal(n)
y = 2.0 + 3.0 * x + 4.0 * np.random.standard_normal(n)
xedges = np.linspace(-4, 4, 42)
yedges = np.linspace(-25, 25, 42)
hist, xedges, yedges = np.histogram2d(x, y, (xedges, yedges))
xidx = np.clip(np.digitize(x, xedges), 0, hist.shape[0]-1)
yidx = np.clip(np.digitize(y, yedges), 0, hist.shape[1]-1)
c = hist[xidx, yidx]
plt.scatter(x, y, c=c)
plt.show()在这段代码的帮助下,我想用我的矩阵做一个超音波,但是我不明白怎么做。我会感激你的。
发布于 2021-02-03 22:48:42
显示矩阵的最简单方法是通过海运的热图。看起来应该是:
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
a = np.array([[4.52, 4.54, 4.52, 4.44, 4.34, 4.28],
[5.10, 4.92, 4.82, 4.80, 4.66, 4.44],
[6.12, 5.80, 5.57, 5.50, 5.15, 4.70],
[6.47, 6.54, 6.27, 6.13, 6.21, 5.97],
[8.11, 8.73, 8.70, 8.63, 8.84, 8.55]])
sns.heatmap(a, annot=True, fmt='.2f', square=True)
plt.show()

由于这些值不是整数,也不是浮动到1的值,所以a似乎不是直方图。
另一种选择是创建一个三维绘图
import matplotlib.pyplot as plt
import numpy as np
a = np.array([[4.52, 4.54, 4.52, 4.44, 4.34, 4.28],
[5.10, 4.92, 4.82, 4.80, 4.66, 4.44],
[6.12, 5.80, 5.57, 5.50, 5.15, 4.70],
[6.47, 6.54, 6.27, 6.13, 6.21, 5.97],
[8.11, 8.73, 8.70, 8.63, 8.84, 8.55]])
fig = plt.figure(figsize=plt.figaspect(0.5))
ax = fig.add_subplot(1, 1, 1, projection='3d')
xedges = np.arange(a.shape[1] + 1)
yedges = np.arange(a.shape[0] + 1)
# Construct arrays for the anchor positions of the 30 bars.
xpos, ypos = np.meshgrid(xedges[:-1] + 0.25, yedges[:-1] + 0.25, indexing="ij")
xpos = xpos.ravel()
ypos = ypos.ravel()
zpos = 0
# Construct arrays with the dimensions for the 30 bars.
dx = dy = 0.5 * np.ones_like(zpos)
dz = a.ravel()
ax.bar3d(xpos, ypos, zpos, dx, dy, dz, zsort='average', color='turquoise')
plt.show()

https://stackoverflow.com/questions/66035866
复制相似问题