Python 使用子绘图时,如何使用matplotlib.pyplot.xticks或类似工具?
我想操纵子地块中每个地块的刻度。绘制单个绘图时,我使用以下方法获得所需结果:Python 使用子绘图时,如何使用matplotlib.pyplot.xticks或类似工具?,python,matplotlib,subplot,ticker,Python,Matplotlib,Subplot,Ticker,我想操纵子地块中每个地块的刻度。绘制单个绘图时,我使用以下方法获得所需结果: 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='wh
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()
不再可用
有没有一种方法可以通过以下方式获得相同的结果
- 或者全局(对于所有图形)以与单个绘图相同的方式操纵轴
- 以上述所需方式单独操作每个子批次
plt.subplot
而不是plt.subplot
可能适合您的需要
导入matplotlib.pyplot作为plt
将numpy作为np导入
x=np.arange(10)
x_标签=['a','b','c','d','e','f','g','h','j','k']
y=np.arange(0,20,2)
对于范围(1,5)内的i:
ax=plt.子批次(2,2,i)
平面图(x,y)
plt.xticks(x,x_标签)
plt.show()
产生以下结果:
还建议阅读,看看你可以用它们做的更简洁的东西。始终使用显式轴进行打印,以及设置记号/标签
fig, axs = plt.subplots(5,4, figsize=(9,7))
for ax in axs.flat:
ax.plot(...)
ax.set_xticks(ticks)
ax.set_xticklabels(labels)
谢谢,到目前为止效果不错。你能告诉我是否有可能增加所有子地块的图形大小,因为所有子地块都紧紧地挤在一起。我只找到了具有属性的地物对象的解决方案,例如f,ax=fig.subplot(a,b,figsize(1,1))。
fig.subplot\u adjust(hspace=0.4,wspace=0.4)
。你可以玩弄这些价值观,但@ImportanceOfBeingErnest的答案可能更好。我只是不记得如何显式地使用轴(.xticks
不起作用)你可以试试plt.tight_layout(),看看它是否能改善子地块之间的间距