绘制半对数 x 轴时,我得到了一个双十年:如何强制显示每十年?
I get a double decade when plot semi-log x-axis : how to force display each decade?
我面临一个简单的问题。当我像这样做半对数图(在 x 轴上记录)时:
# Number of values for loop
num_sigma_loop = 100
sigma_start = 2
sigma_end = -6
sigma = np.logspace(sigma_start,sigma_end,num_sigma_loop)
...
...
# Computation of FoM_final
...
...
fig, axes = plt.subplots()
plt.xscale('log')
plt.tick_params(axis='y', which='minor')
for j in range(1):
inv_sigma = 1./sigma
axes.plot(inv_sigma, FoM_final, label='5 common bias : '+r'$b'+r'_{sp}=b'+r'_{ph}$')
axes.legend(loc="best")
plt.xlabel('1/sigma', fontsize=10)
然后,我得到下图:
如您所见,我在 x 轴上有两个十年:如何强制 matplotlib 绘制每个十年而不是从 10^1 直接传递到 10^3?
最后,如何使绘制的每个十年的次要 xtik 出现?
编辑
给出的解决方案无法识别参数 nbins
:
我收到以下错误:
plt.locator_params(axis="x", nbins=20) File "/opt/intel/intelpython3/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2691, in locator_params return gca().locator_params(axis=axis, tight=tight, **kwargs) File "/opt/intel/intelpython3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 2913, in locator_params self.xaxis.get_major_locator().set_params(**kwargs) TypeError: set_params() got an unexpected keyword argument 'nbins'
您可以使用 nbins = 您想要的刻度数
plt.locator_params(axis="x", nbins=20)
plt.plot(X, Y)
可能有助于在对数刻度上添加小刻度。
我面临一个简单的问题。当我像这样做半对数图(在 x 轴上记录)时:
# Number of values for loop
num_sigma_loop = 100
sigma_start = 2
sigma_end = -6
sigma = np.logspace(sigma_start,sigma_end,num_sigma_loop)
...
...
# Computation of FoM_final
...
...
fig, axes = plt.subplots()
plt.xscale('log')
plt.tick_params(axis='y', which='minor')
for j in range(1):
inv_sigma = 1./sigma
axes.plot(inv_sigma, FoM_final, label='5 common bias : '+r'$b'+r'_{sp}=b'+r'_{ph}$')
axes.legend(loc="best")
plt.xlabel('1/sigma', fontsize=10)
然后,我得到下图:
如您所见,我在 x 轴上有两个十年:如何强制 matplotlib 绘制每个十年而不是从 10^1 直接传递到 10^3?
最后,如何使绘制的每个十年的次要 xtik 出现?
编辑
给出的解决方案无法识别参数 nbins
:
我收到以下错误:
plt.locator_params(axis="x", nbins=20) File "/opt/intel/intelpython3/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2691, in locator_params return gca().locator_params(axis=axis, tight=tight, **kwargs) File "/opt/intel/intelpython3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 2913, in locator_params self.xaxis.get_major_locator().set_params(**kwargs) TypeError: set_params() got an unexpected keyword argument 'nbins'
您可以使用 nbins = 您想要的刻度数
plt.locator_params(axis="x", nbins=20)
plt.plot(X, Y)