我正在绘制一些包含空间(x,y)成分以及z成分的数据,这是空间中该点的测量值。我正在看画廊,我只是 它。我认为我想要的是一个pcolormesh,但我不明白我需要提供什么参数。我终于成功地获得了一个散点图基本上可以做我想要的,但它不如我想要的漂亮。如果我能找到一种方法来使散点图中的点更大,我会对我的情节更加满意。此外,我一直试图添加一个图例 - 我只需要颜色条部分,因为最终用户并不真正关心X和Y尺寸。看看colorbar示例,我似乎需要添加一个轴,但我不明白我是怎么告诉它我需要的轴是Z轴。
x_vals = list(first_array[data_loc_dictionary['x_coord_index']][:])
y_vals = list(first_array[data_loc_dictionary['y_coord_index']][:])
y_vals = [-i for i in y_vals]
z_vals = list(first_array[data_loc_dictionary['value_index']][:])
plt.scatter(x_vals, y_vals, s = len(x_vals)^2, c = z_vals, cmap = 'rainbow')
plt.show()
以下是我要复制的示例: 这是上面的代码产生的:
很好的捕获^ 2 -
答案 0 :(得分:2)
这个基本的例子怎么样:
# generate random data
In [63]: x = np.random.rand(20)
In [64]: y = np.random.rand(20)
In [65]: z = np.random.rand(20)
# plot it with square markers: marker='s'
In [66]: plt.scatter(x, y, s=len(x)**2, c=z, cmap='rainbow', marker='s')
Out[66]: <matplotlib.collections.PathCollection at 0x39e6c90>
# colorbar
In [67]: c = plt.colorbar(orientation='horizontal')
In [68]: c.set_label('This is a colorbar')
In [69]: plt.show()
点的大小由
给出s : scalar or array_like, shape (n, ), optional, default: 20
size in points^2.
我认为没有理由默认s=len(x)**2
是一个不错的选择。我会根据你的喜好来玩它。
答案 1 :(得分:1)
如果您想知道如何使用pcolormesh复制初始示例图像,我会这样做:
import numpy as np
import matplotlib.pyplot as plt
f, ax = plt.subplots(figsize=(6, 5))
grid = np.arange(-5, 6)
x, y = np.meshgrid(grid, grid)
z = np.random.randn(len(x), len(y))
mask = (np.abs(x) + np.abs(y)) > 4
z = np.ma.masked_array(z, mask)
mesh = ax.pcolormesh(x - .5, y - .5, z, cmap="coolwarm", vmin=-3, vmax=3)
plt.colorbar(mesh)
生产: