我想操纵子图中每个图的刻度。当绘制单个图时,通过使用以下命令可获得所需结果:
import matplotlib.pyplot as plt
import numpy as np
# ...
# some data acquisition
# ...
ax.imshow(data[i], cmap=plt.cm.jet, origin='bottom')
ax.contour(x, y, dataFitted[i].reshape(2*crop, 2*crop), 3, colors='white')
# adjust scale from pixel to micrometers on heat maps
pixelSize = 5.5 # micrometer/pxl
scaleEnd = crop * pixelSize
wishedTicks = np.array([-150, -100, -50, 0, 50, 100, 150])
originalTicks = (wishedTicks + scaleEnd) / pixelSize
plt.xticks(originalTicks, wishedTicks)
plt.yticks(originalTicks, wishedTicks)
到目前为止,还不错,但是如果我使用
fig, ax = plt.subplots(nrows=5, ncols=4)
要创建子图,据我所知,功能
plt.xticks()
不再可用。有没有办法接收相同的结果
以与我对单个绘图相同的方式全局(对于所有图形)操纵轴
要么
以上述所需方式分别处理每个子图?
最佳答案
始终使用显式轴进行绘图,例如设置刻度线/标签。
fig, axs = plt.subplots(5,4, figsize=(9,7))
for ax in axs.flat:
ax.plot(...)
ax.set_xticks(ticks)
ax.set_xticklabels(labels)
关于python - 使用子图时,如何使用matplotlib.pyplot.xticks或类似的东西?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58039556/