Python 2.7 在matplotlib中隐藏原点(x轴和y轴上的0)

Python 2.7 在matplotlib中隐藏原点(x轴和y轴上的0),python-2.7,matplotlib,Python 2.7,Matplotlib,我正在编写一些代码,我想从图形中隐藏原点(x轴上的零,y轴上的零)。我已经尝试了所有我见过的可能性,但是当我得到标签列表时,它们返回空的,或者当范围为-10-10时,它们只返回几个值(-2,-1,0,1,2,3) 此外,是否有任何方法将记号本身的字体更改为Computer Modern 10(LaTeX字体?隐藏轴上的0,可以使用FuncFormatter完成。此格式化程序的函数只需检查标签是否为0,并在这种情况下返回空字符串 import matplotlib.pyplot as plt im

我正在编写一些代码,我想从图形中隐藏原点(x轴上的零,y轴上的零)。我已经尝试了所有我见过的可能性,但是当我得到标签列表时,它们返回空的,或者当范围为-10-10时,它们只返回几个值(-2,-1,0,1,2,3)


此外,是否有任何方法将记号本身的字体更改为Computer Modern 10(LaTeX字体?

隐藏轴上的
0
,可以使用
FuncFormatter
完成。此格式化程序的函数只需检查标签是否为0,并在这种情况下返回空字符串

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np

x = np.linspace(-5,8)
y = np.sin(x)
plt.plot(x,y)

func = lambda x, pos: "" if np.isclose(x,0) else x
plt.gca().xaxis.set_major_formatter(ticker.FuncFormatter(func))
plt.gca().yaxis.set_major_formatter(ticker.FuncFormatter(func))

plt.show()

可以使用
FuncFormatter
在轴上隐藏
0
。此格式化程序的函数只需检查标签是否为0,并在这种情况下返回空字符串

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np

x = np.linspace(-5,8)
y = np.sin(x)
plt.plot(x,y)

func = lambda x, pos: "" if np.isclose(x,0) else x
plt.gca().xaxis.set_major_formatter(ticker.FuncFormatter(func))
plt.gca().yaxis.set_major_formatter(ticker.FuncFormatter(func))

plt.show()

完美!但是,将此标记为答案,您是否也可以解决我的字体问题?它不允许我设置自己的字体!避免在同一个问题上问两个不同的问题是很好的。这是一个很好的例子,说明了为什么同时问两个问题是不好的:你只是忘记了对这个问题给出一个清晰的问题描述。那么您是否在使用乳胶(usetex=True)?有什么问题?您是否尝试过设置字体,但它不起作用,或者您不知道如何设置字体?你在谷歌上搜索过吗?如果是这样的话,在这方面还有多少其他问题没有帮助等等。你完全正确!下次我会尽量坚持两个问题:)。我希望我的记号是现代电脑的字体,但不是乳胶渲染。我已经完成了我看到的每一个StackOverflow建议,从一开始手动更改rcParams到使用更新功能等等。完美!但是,将此标记为答案,您是否也可以解决我的字体问题?它不允许我设置自己的字体!避免在同一个问题上问两个不同的问题是很好的。这是一个很好的例子,说明了为什么同时问两个问题是不好的:你只是忘记了对这个问题给出一个清晰的问题描述。那么您是否在使用乳胶(usetex=True)?有什么问题?您是否尝试过设置字体,但它不起作用,或者您不知道如何设置字体?你在谷歌上搜索过吗?如果是这样的话,在这方面还有多少其他问题没有帮助等等。你完全正确!下次我会尽量坚持两个问题:)。我希望我的记号是现代电脑的字体,但不是乳胶渲染。我已经完成了我看到的每一个StackOverflow建议,从一开始手动更改rcParams到使用update函数等等。