这是我用来生成热图的代码:
import numpy as np
import matplotlib.pyplot as plt
x_values = [x for x in range(5)]
y_values = [y for y in range(7)]
z_values = np.random.rand(len(y_values), len(x_values))
plt.imshow(z_values, cmap='viridis', extent=[min(x_values), max(x_values), min(y_values), max(y_values)],
origin='lower', aspect='auto')
plt.gca().invert_yaxis()
# Add labels for every y-axis point and every second x-axis point
plt.yticks(np.arange(len(y_values)), y_values)
plt.xticks(np.arange(0, len(x_values), 2), x_values[::2])
plt.show()
很明显,x 轴和 y 轴标签排列错误。我该如何解决这个问题?
改变一下
extent=[min(x_values), max(x_values), min(y_values), max(y_values)]
到
extent=[min(x_values), max(x_values) + 1, min(y_values), max(y_values) + 1]
在通话中
imshow
。