Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用子绘图时,如何使用matplotlib.pyplot.xticks或类似工具?_Python_Matplotlib_Subplot_Ticker - Fatal编程技术网

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(),看看它是否能改善子地块之间的间距