hahadaxiao 发表于 2023-7-18 22:34:29

用pycharm设置x轴刻度线没反应

import matplotlib.pyplot as plt
x =
y =
plt.rcParams['font.sans-serif']=['SimHei']
plt.plot(x,y,marker='o')
for a,b in zip(x,y):
    plt.text(a,b,b,ha='center',va='bottom',fontsize=12,color='r')

# 添加文本注释
plt.annotate('最大数',xy=(4,46),xytext=(5,46),arrowprops=dict(facecolor='r',shrink=0.05))

plt.tick_params(bottom=True,left=True,right=True,top=True)
plt.rcParams['xtick.direction']='in'
plt.rcParams['ytick.direction']='in'
plt.show()

我想设置x,y轴的刻度线在里面,我把“in”改成"out",效果都一样

isdkz 发表于 2023-7-18 22:34:58

答案:

这是因为您没有在 plt.tick_params() 函数中指定轴的方向。在 plt.tick_params() 中,您需要明确指定哪个轴应用这些参数。您可以使用 axis 参数来指定,可能的值是'x','y',或者'both'。您可以尝试以下修改:

plt.tick_params(axis='both', direction='in', bottom=True, top=True, left=True, right=True)


解释:

在matplotlib库中, tick_params() 函数用于改变刻度线的属性。这些属性可以是颜色、刻度值的方向、刻度线的宽度等。在您的代码中,您试图改变x轴和y轴的刻度线的方向。

在您的原始代码中,您在 plt.tick_params() 中设置 bottom=True,left=True,right=True,top=True ,这只是打开了所有的刻度线,但并未指定方向,这就是为什么刻度线的方向没有改变的原因。

而在修改后的代码中,通过设置 axis='both' 和 direction='in' ,我们指定了刻度线应用于x轴和y轴,并且刻度线的方向是向内的。这样设置后,刻度线的方向就会按照预期的方式显示出来了。

所以,如果您想设置x轴或y轴的刻度线在里面,只需要在 tick_params 函数中指定 axis 和 direction 参数即可。

sfqxx 发表于 2023-7-18 23:26:58

你的代码已经正确地设置了刻度线的方向为"inside"。这样设置后,刻度线应该是在图形的内部。然后你说你试图将'in'改为'out',但效果没有变化,这可能是因为你的修改没有正确应用。

这是一个例子,演示如何更改刻度线的方向:

import matplotlib.pyplot as plt

x =
y =

plt.rcParams['font.sans-serif']=['SimHei']
plt.plot(x,y,marker='o')

for a,b in zip(x,y):
    plt.text(a,b,b,ha='center',va='bottom',fontsize=12,color='r')

# 添加文本注释
plt.annotate('最大数',xy=(4,46),xytext=(5,46),arrowprops=dict(facecolor='r',shrink=0.05))

plt.tick_params(bottom=True,left=True,right=True,top=True, direction='out')# 改变刻度线向外
plt.show()
在这个例子中,我在plt.tick_params函数中添加了direction='out'。这将使得刻度线向外延伸。如果你在你的代码中这样做,但没有看到期望的效果,那么可能需要查看你的matplotlib版本,或者检查是否有其他设置覆盖了这个设置

求最佳答案{:10_254:}

hahadaxiao 发表于 2023-7-19 15:30:52

isdkz 发表于 2023-7-18 22:34
答案:

这是因为您没有在 plt.tick_params() 函数中指定轴的方向。在 plt.tick_params() 中,您需要明确指 ...

我刻度线左边设置往里、下边往里、上边往外、右边往外,怎么写代码呀

isdkz 发表于 2023-7-19 15:42:08

hahadaxiao 发表于 2023-7-19 15:30
我刻度线左边设置往里、下边往里、上边往外、右边往外,怎么写代码呀

这个应该做不到

hahadaxiao 发表于 2023-7-19 15:44:18

isdkz 发表于 2023-7-19 15:42
这个应该做不到

plt.rcParams['xtick.direction']='in'
plt.rcParams['ytick.direction']='in'

我网上看过,别人Jupyter Notebook也是用这代码的喔,我在pycharm上面使用没反应{:5_104:}

isdkz 发表于 2023-7-19 15:59:27

hahadaxiao 发表于 2023-7-19 15:44
plt.rcParams['xtick.direction']='in'
plt.rcParams['ytick.direction']='in'



有链接吗?发来看看

hahadaxiao 发表于 2023-7-19 17:06:14

isdkz 发表于 2023-7-19 15:59
有链接吗?发来看看

https://blog.csdn.net/gsgbgxp/article/details/125077492

isdkz 发表于 2023-7-19 17:14:37

hahadaxiao 发表于 2023-7-19 17:06
https://blog.csdn.net/gsgbgxp/article/details/125077492

import matplotlib.pyplot as plt
x =
y =
plt.rcParams['font.sans-serif']=['SimHei']
plt.plot(x,y,marker='o')
for a,b in zip(x,y):
    plt.text(a,b,b,ha='center',va='bottom',fontsize=12,color='r')

# 添加文本注释
plt.annotate('最大数',xy=(4,46),xytext=(5,46),arrowprops=dict(facecolor='r',shrink=0.05))


plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'
plt.tick_params(bottom=True,left=True,right=True,top=True)                     # 把这句放到下面才可以生效      
plt.show()
页: [1]
查看完整版本: 用pycharm设置x轴刻度线没反应