python - 在 matplotlib 中绘制单元格平均值而不是线图

标签 python matplotlib plot

给定一组 n 个“坐标”,例如 x=[0, 1, 2, 3, 4] 和 n-1 个“值”y = [10, 20, 30, 40] 我想绘制一个分段常数函数,对于 0 < x <1,它等于 10;对于 1 < x < 2,它等于 20。

换句话说,x 列表包含单元格边界的坐标,而 y 列表表示单元格内该函数的值。绘制此类数据的标准方法是什么?

我也对不规则网格和二维图感兴趣。

最佳答案

对于一维数据,您可以使用条形图。第一个参数是条形的中心,第二个参数是条形的高度。

x=np.asarray([0, 1, 2, 3, 4])
centers=(x[1:]+x[:-1])/2.0
plt.bar(centers,[10, 20, 30, 40],width=1)

barplot

对于二维数据,您可以使用 pcolor颜色条

# x coordinates of the cells
x=np.asarray([0, 1, 2, 3, 4])
# y coordinates of the cells
y=np.asarray([0,1,2])
# values inside the cells
c = np.asarray([[10, 20, 30, 40], [50,60,70,80]])

# plot the cells
plt.pcolor(x,y,c)
# plot a bar to match colors with values
plt.colorbar()

pcolor

要绘制非常规网格,pcolor 可以将 x 和 y 的二维数组作为参数:您可以指定每个单元格的 x 和 y 坐标。
请注意,pcolormesh 绘制的内容与 pcolor 相同,但速度更快,这很有用。

关于python - 在 matplotlib 中绘制单元格平均值而不是线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35035615/

相关文章:

python - 如何使用 NumPy 计算 Minitab 等效四分位数

python - django ORM - 在 M2M 上排除,F 功能不起作用

python - Matplotlib 的非线性颜色图

python - 正则表达式:如何删除多余的子字符串

Python windows服务 "Error starting service: The service did not respond to the start or control request in a timely fashion"

python - 在 matplotlib 的图例中插入先前计算的值

python - 如何在 Python 中绘制二元多项式函数

r - 使用 slider 绘制 3d 图形以控制绘制的点数

arrays - 用 numpy 和 csv 绘制移动平均线

r - 如何在 R 中将默认绘图类型从点更改为线?