簡體   English   中英

locator_params的主要滴答聲

[英]major ticks with locator_params

我無法在同一水平上顯示第一,第二,第三y軸的主要刻度。 如果您看一下下圖,可以看到:

  • y左軸有10個倉(網格已打開)

  • 第一條y右軸只​​有7個槽,其主要刻度與y左軸的軸不對齊

  • 第2個y右軸只有9個bin,其主要刻度沒有與y左軸或第1個y右軸對齊。

我在這里找到了建議使用“ locator_parameters”的主題:

    plt.locator_params(axis='y', nbins=10) 

但我沒有設法使其適用於我的情況。 我希望所有y軸都具有10個紙箱,並且我希望主要刻度線對齊。

在此處輸入圖片說明

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from matplotlib import rcParams
    %matplotlib inline
    x = np.random.rand(20)
    y1 = x*5
    y2 = x*5 + 0.2
    y3 = x*x*3.5 + 0.2*x
    y4 = x*5 + 0.2*x
    yLimMin = 0
    yLimMax = 2.1
    lineWidth = 1.0
    fontSize = 24
    subTitle = ""

    plt.rcParams.update({'axes.labelsize': 'small'})
    fig = plt.figure(figsize=(21,29.7))
    ax11 = fig.add_subplot(411)

    subplotAdjustRight = 0.90
    mks = 19 # marker step
    ax11.plot(x,y1, linestyle='-', linewidth=lineWidth, color = 'k',
      marker='*', markevery=11*mks, 
      label="CO")
    ax11.set_ylabel('CO [%]', color='k')
    plt.ylim((0,5))
    fig.suptitle(subTitle, fontsize = fontSize)
    ax11.yaxis.grid()
    ax11.locator_params(axis='y', nbins=10)
    ax12=ax11.twinx()
    ax12.plot(x,y2,linestyle='-', linewidth=lineWidth, color='r',
      marker='*', markevery=11*mks, 
      label="CO22")
    ax12.set_ylabel('NO [%]', color='r')
    plt.ylim((0,13))
    ax12.locator_params(axis='y', nbins=10)

    ax13= ax11.twinx()
    rspine = ax13.spines['right']
    rspine.set_position(('axes', 1.05))
    ax13.set_frame_on(True)
    ax13.plot(x,y3,linestyle='-', linewidth=lineWidth, color='m',
      marker='*', markevery=11*mks, 
      label="CO222")
    ax13.set_ylabel('O [%] ', color='m')
    plt.ylim((0,22))
    ax13.locator_params(axis='y', nbins=10)

ax14.set_yticks(np.linspace(ax14.get_ybound()[0],ax14.get_ybound()[1],11))

x = np.random.rand(20)
y1 = x*5
y2 = x*5 + 0.2
y3 = x*x*3.5 + 0.2*x
y4 = x*5 + 0.2*x
#from matplotlib.ticker import AutoMinorLocator
yLimMin = 0
yLimMax = 2.1
lineWidth = 1.0
fontSize = 24
subTitle = ""


plt.rcParams.update({'axes.labelsize': 'small'})
fig = plt.figure(figsize=(21,29.7))
ax11 = fig.add_subplot(411)

subplotAdjustRight = 0.90
mks = 19 # marker step
#matplotlib.locator.MAXTICKS = 5
ax11.plot(x,y1, linestyle='-', linewidth=lineWidth, color = 'k',
                     marker='*', markevery=11*mks, 
                     label="CO")
ax11.set_ylabel('CO [%]', color='k')
plt.ylim((0,5))
fig.suptitle(subTitle, fontsize = fontSize)
ax11.yaxis.grid()
#ax11.locator_params(axis='ax11', nbins=10)
ax11.set_yticks(np.linspace(ax11.get_ybound()[0], ax11.get_ybound()[1], 11))

ax12=ax11.twinx()
ax12.plot(x,y2,linestyle='-', linewidth=lineWidth, color='r',
                marker='*', markevery=11*mks, 
                label="CO22")
ax12.set_ylabel('NO [%]', color='r')
plt.ylim((0,13))
#ax12.locator_params(axis='ax11', nbins=10)
ax12.set_yticks(np.linspace(ax12.get_ybound()[0], ax12.get_ybound()[1], 11))

ax13= ax11.twinx()
rspine = ax13.spines['right']
rspine.set_position(('axes', 1.05))
ax13.set_frame_on(True)
ax13.plot(x,y3,linestyle='-', linewidth=lineWidth, color='m',
                marker='*', markevery=11*mks, 
                label="CO222")
ax13.set_ylabel('O [%] ', color='m')
plt.ylim((0,22.87))
#ax13.locator_params(axis='ax11', nbins=10)
ax13.set_yticks(np.linspace(ax13.get_ybound()[0], ax13.get_ybound()[1], 11))

ax14= ax11.twinx()
rspine = ax14.spines['right']
rspine.set_position(('axes', 1.10))
ax14.set_frame_on(True)
ax14.plot(x,y4,linestyle='-', linewidth=lineWidth, color='m',
                marker='*', markevery=11*mks, 
                label="CO2")
ax14.set_ylabel('CO [%] ', color='m')
plt.ylim((0,25))
#ax14.locator_params(axis='ax11', nbins=10)
ax14.set_yticks(np.linspace(ax14.get_ybound()[0], ax14.get_ybound()[1], 11))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM