2017-06-20 599 views
0

我正在研究一些代码,我想隐藏原点(x轴上的零点和y轴上的零点)从图中。我已经尝试过所有可能的方法,但是当我得到标签列表时,它们会返回空白,或者当范围为空时返回值仅为几个值(-2,-1,0,1,2,3) -10 - 10.在matplotlib中隐藏原点(x和y轴上的0)

此外,有没有任何方式对蜱本身的字体更改为计算机现代10(乳胶字体?)

回答

1

隐藏在轴上的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() 

enter image description here

+0

完美!然而,将此标记为答案,您是否也可以修复我的字体问题?这不允许我设置自己的字体! –

+0

避免在同一问题中询问两个不同的东西真的很好。这是一个非常好的例子,它说明了为什么一次提出两个问题是不好的:你只是忘了给这个问题提供一个明确的问题描述。那么你是否使用胶乳(usetex = True)?问题是什么?你有没有尝试设置字体,它不工作,或者你不知道如何设置字体?你是用Google搜索的吗?如果是这样,那么其他问题在多大程度上没有帮助等等。 – ImportanceOfBeingErnest

+0

你是完全正确的!下次我会试着坚持两个问题:)。 我希望我的蜱虫可以在字体Computer Modern中使用,但不能在LaTeX中使用RENDER。我已经完成了我从开始时手动更改rcParams到使用更新函数等所见过的每一个StackOverflow建议。 –