如何在matplotlib imshow等高线图的顶部显示数据点?

你父亲

我使用绘制了轮廓图imshow可以从和的代码中z计算出的值范围是xy作为下一步我想绘制一些计算z_new值一些随机的x_new,并y_new在其上可以由圆圈或类似的东西来标记轮廓图像的顶部。

该代码显示为:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors

x = np.linspace(-0.5, 2.0, 101)
y = np.linspace(-0.5, 2.0, 101)
z = np.zeros((101, 101))
E = 0.0
for i in range(len(x)):
    for j in range(len(y)):
        z[i,j] = -max(y[j]+0.2+E, 0.5-x[i], 0)
        
x_new = np.array([1.1168189, 0.8381589, 1.3312789, -0.2149011])
y_new = np.array([1.7571379, 1.5555579, 1.9138179, 0.7912879])
z_new = []
for k, l in zip(x_new, y_new):
    #print (k, l, -max(l+0.2+E, 0.5-k, 0)) # z_new = -max(l+0.2+eU, 0.5-k, 0) calculated for some random x_new and y_new
    z_new.append(-max(l+0.2+E, 0.5-k, 0)) # I would like to see these z_new points on the contour plot for corresponding x_new and y_new

fig, ax = plt.subplots()
ms = plt.imshow(z.T, cmap='plasma', vmin=-2.5, vmax=0, origin='lower', interpolation='none', extent=[-0.5,2.0,-0.5,2.0])
ax.set_xlabel('x', fontsize=16, fontname = "Helvetica")
ax.set_ylabel('y', fontsize=16, fontname = "Helvetica")
cbar = plt.colorbar(ms)
cbar.ax.tick_params(labelsize=10, direction='out')
cbar.set_label('z', fontsize=16, fontname = "Helvetica")
#plt.savefig('test.pdf')
plt.xticks(fontname = "Helvetica", fontsize=12)
plt.yticks(fontname = "Helvetica", fontsize=12)
plt.show()

在此处输入图片说明

贝尔纳多·特林达德

您可以在热图的顶部添加散点图,并在下面添加代码的最后一行。没有边缘的情况下很难看到圆,但是当您发现它们时,可以很好地感觉到它们的值与热图的比较。您可以通过取消注释plt.scatter命令上方的线条来为圆圈添加黑色边缘,这使圆圈易于定位,但很难看到颜色差异。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors

x = np.linspace(-0.5, 2.0, 101)
y = np.linspace(-0.5, 2.0, 101)
z = np.zeros((101, 101))
E = 0.0
for i in range(len(x)):
    for j in range(len(y)):
        z[i,j] = -max(y[j]+0.2+E, 0.5-x[i], 0)
        
x_new = np.array([1.1168189, 0.8381589, 1.3312789, -0.2149011])
y_new = np.array([1.7571379, 1.5555579, 1.9138179, 0.7912879])
z_new = []
for k, l in zip(x_new, y_new):
    #print (k, l, -max(l+0.2+E, 0.5-k, 0)) # z_new = -max(l+0.2+eU, 0.5-k, 0) calculated for some random x_new and y_new
    z_new.append(-max(l+0.2+E, 0.5-k, 0)) # I would like to see these z_new points on the contour plot for corresponding x_new and y_new

fig, ax = plt.subplots()
ms = plt.imshow(z.T, cmap='plasma', vmin=-2.5, vmax=0, origin='lower', interpolation='none', extent=[-0.5,2.0,-0.5,2.0])
ax.set_xlabel('x', fontsize=16, fontname = "Helvetica")
ax.set_ylabel('y', fontsize=16, fontname = "Helvetica")
cbar = plt.colorbar(ms)
cbar.ax.tick_params(labelsize=10, direction='out')
cbar.set_label('z', fontsize=16, fontname = "Helvetica")
#plt.savefig('test.pdf')
plt.xticks(fontname = "Helvetica", fontsize=12)
plt.yticks(fontname = "Helvetica", fontsize=12)

## New code ##
# plt.scatter(x_new, y_new, c=z_new, cmap='plasma', vmin=-2.5, vmax=0, edgecolors='black') #Uncommend this if you want the points circled in black
plt.scatter(x_new, y_new, c=z_new, cmap='plasma', vmin=-2.5, vmax=0)
## End of new code ##

plt.show()

在此处输入图片说明 在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使ggplot2等高线图类似于点阵:filled.contour()?

来自分类Dev

给定范围内的matplotlib等高线图

来自分类Dev

Matplotlib:如何为等高线图调整颜色栏中的线宽?

来自分类Dev

如何使等高线图在一个轴上的线图上不重叠?

来自分类Dev

在matplotlib等高线图中手动设置标签错误

来自分类Dev

如何使等高线图叠加在底图上

来自分类Dev

使用Matplotlib滑块更新等高线图级别

来自分类Dev

为什么绘制二维数组时matplotlib等高线图失败

来自分类Dev

将构成等高线图矩阵的数据点覆盖在MATLAB中的同一图上

来自分类Dev

Python Matplotlib等高线图中的非线性缩放

来自分类Dev

从数据框创建等高线图

来自分类Dev

填充matplotlib等高线图

来自分类Dev

填充matplotlib等高线图

来自分类Dev

在matplotlib中绘制最小二乘估计函数的等高线图

来自分类Dev

带有lognorm的matplotlib等高线图-颜色栏级别

来自分类Dev

Matplotlib:等高线图的数据三次插值(或FIT)

来自分类Dev

在给定范围内的matplotlib等高线图

来自分类Dev

从matplotlib等高线图中提取特定路径

来自分类Dev

等高线图例-Matplotlib

来自分类Dev

将构成等高线图矩阵的数据点覆盖在MATLAB的同一图上

来自分类Dev

Matplotlib等高线图上颜色栏的Python最小和最大范围

来自分类Dev

Gnuplot-在2D等高线图上绘制数据点

来自分类Dev

如何使用ggplot将实际数据点放在等高线图上?

来自分类Dev

坏等高线图

来自分类Dev

如何在填充的等高线图中绘制水平线并标记它?

来自分类Dev

在 matplotlib 等高线图中设置轴比例

来自分类Dev

条件等高线图

来自分类Dev

Gnuplot - 在二维等高线图上绘制数据点

来自分类Dev

Python 中 matplotlib 等高线图的 ValueError

Related 相关文章

  1. 1

    如何使ggplot2等高线图类似于点阵:filled.contour()?

  2. 2

    给定范围内的matplotlib等高线图

  3. 3

    Matplotlib:如何为等高线图调整颜色栏中的线宽?

  4. 4

    如何使等高线图在一个轴上的线图上不重叠?

  5. 5

    在matplotlib等高线图中手动设置标签错误

  6. 6

    如何使等高线图叠加在底图上

  7. 7

    使用Matplotlib滑块更新等高线图级别

  8. 8

    为什么绘制二维数组时matplotlib等高线图失败

  9. 9

    将构成等高线图矩阵的数据点覆盖在MATLAB中的同一图上

  10. 10

    Python Matplotlib等高线图中的非线性缩放

  11. 11

    从数据框创建等高线图

  12. 12

    填充matplotlib等高线图

  13. 13

    填充matplotlib等高线图

  14. 14

    在matplotlib中绘制最小二乘估计函数的等高线图

  15. 15

    带有lognorm的matplotlib等高线图-颜色栏级别

  16. 16

    Matplotlib:等高线图的数据三次插值(或FIT)

  17. 17

    在给定范围内的matplotlib等高线图

  18. 18

    从matplotlib等高线图中提取特定路径

  19. 19

    等高线图例-Matplotlib

  20. 20

    将构成等高线图矩阵的数据点覆盖在MATLAB的同一图上

  21. 21

    Matplotlib等高线图上颜色栏的Python最小和最大范围

  22. 22

    Gnuplot-在2D等高线图上绘制数据点

  23. 23

    如何使用ggplot将实际数据点放在等高线图上?

  24. 24

    坏等高线图

  25. 25

    如何在填充的等高线图中绘制水平线并标记它?

  26. 26

    在 matplotlib 等高线图中设置轴比例

  27. 27

    条件等高线图

  28. 28

    Gnuplot - 在二维等高线图上绘制数据点

  29. 29

    Python 中 matplotlib 等高线图的 ValueError

热门标签

归档