matplotlib中的x轴和y轴断裂

fhity93d  于 2022-12-04  发布在  其他
关注(0)|答案(1)|浏览(176)

我试图绘制断开的y轴和x轴。我写了一个非常基本的代码,从前面回答的问题的帮助。但是,我不明白为什么我的绘图不是在断开的x轴的左边和断开的y轴的下面。我在这里附上我的数据文件a.txtb.dat。我的代码如下所示

from numpy import *
from pylab import *
import numpy as np
from matplotlib import *
import matplotlib as mpl
import os
from math import ceil
from scipy.interpolate import interp1d
from brokenaxes import brokenaxes

path = os.getcwd()+"/"
symm_type="eb"
flag_include_other_limits=True

mpl.rcParams['xtick.labelsize']=20
mpl.rcParams['ytick.labelsize']=20
mpl.rcParams['legend.fontsize']=20
mpl.rcParams['legend.borderpad']=0.8
mpl.rcParams['ps.fonttype']=42
mpl.rcParams['pdf.fonttype']=42
mpl.rcParams['font.family'] = 'serif'
mpl.rcParams['font.serif'] = ['Times New Roman'] + plt.rcParams['font.serif']

print("Plot_Limit_M_G: Plotting limits on (m,g)...")

fig = plt.figure(figsize=[9,9])
bax = brokenaxes(xlims=((1e-35, 1e-10), (1e-3, 1e1)), ylims=((1e-32, 1e-24), (1e-6, 1e-3)), hspace=.05)
bax_xticks_major = np.array([1.e-35, 1.e-30, 1.e-25, 1.e-20, 1.e-15, 1.e-10, 1e-3, 1e-2, 1e-1, 1e1])
bax.set_xscale('log')
bax.set_yscale('log')
x = np.logspace(-35, 1, 100)
y = np.logspace(-32, -3,100)
lst_colors = ['#f51d11', '#08c252', '#11a9f5', '#FF00FF', '#b166d1']
lst_styles = ['-', '--', ':', '--', '.-']

lst_limits3 = Read_Data_File(path+"b.dat")
lst_m3 = [ 10.**lst_limits3[0][j] for j in range(len(lst_limits3[0])) ]
lst_g_hi_20153 = [10.**lst_limits3[1][j] for j in range(len(lst_limits3[1]))]
bax.plot(lst_m3, lst_g_hi_20153, color='#FF00FF', ls='dashed', lw=2.5, zorder=20)

lst_limits5 = Read_Data_File(path+"a.txt")
lst_m5 = [ 10.**lst_limits5[0][j] for j in range(len(lst_limits5[0])) ]
lst_g_hi_20155 = [10.**lst_limits5[1][j] for j in range(len(lst_limits5[1]))]
bax.plot(lst_m5, lst_g_hi_20155, color='#b166d1', ls='dashed', lw=2.5, zorder=20)

pylab.savefig("outfile.pdf", bbox_inches='tight', dpi=200)
plt.show()
plt.close()
path = os.getcwd()+"/"

我尝试了上面的代码,并希望曲线在x轴上的范围从10^{-35}到10^{-10},然后中断并再次从10^{-3}到10^{1}。我希望它在y轴上显示从10^{-32}到10^{-24},然后中断并从10^{-6}到10^{-3}。但它没有显示。

k5hmc34c

k5hmc34c1#

它的工作,排序,与您的限制,为部分轴。有一些恼人的文物,但从根本上说,它的工作。

from matplotlib.pyplot import figure
from brokenaxes import brokenaxes
from numpy import logspace

x = logspace(-35, +1, 100)
y = logspace(-32, -3, 100)

fig = figure()
bax = brokenaxes(xlims=((1E-35, 1E-10), (1E-3, 10)),
                 ylims=((0.8E-32, 1E-24), (1E-6, 2e-3)),
                 xscale='log', yscale='log')
bax.loglog(x, y, label='...')
bax.legend(loc=8)
bax.grid(axis='both', which='major', ls='-')
bax.set_xlabel('x')
bax.set_ylabel('y')
fig.show()

相关问题