我有一个简单的图,我想显示原点轴(x,y)。我已经有网格,但是我需要强调x,y轴。
这是我的代码:
x = linspace(0.2,10,100)
plot(x, 1/x)
plot(x, log(x))
axis('equal')
grid()
我看过this问题。接受的答案建议使用“轴脊”,并仅链接到一些示例。但是,该示例使用子图过于复杂。我无法在简单的示例中弄清楚如何使用“轴脊柱”。
最佳答案
使用subplots
不太复杂,可能是棘刺。
笨,简单的方法:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0.2,10,100)
fig, ax = plt.subplots()
ax.plot(x, 1/x)
ax.plot(x, np.log(x))
ax.set_aspect('equal')
ax.grid(True, which='both')
ax.axhline(y=0, color='k')
ax.axvline(x=0, color='k')
我得到:
(由于x的下限为零,因此看不到垂直轴。)
选择使用简单的刺
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0.2,10,100)
fig, ax = plt.subplots()
ax.plot(x, 1/x)
ax.plot(x, np.log(x))
ax.set_aspect('equal')
ax.grid(True, which='both')
# set the x-spine (see below for more info on `set_position`)
ax.spines['left'].set_position('zero')
# turn off the right spine/ticks
ax.spines['right'].set_color('none')
ax.yaxis.tick_left()
# set the y-spine
ax.spines['bottom'].set_position('zero')
# turn off the top spine/ticks
ax.spines['top'].set_color('none')
ax.xaxis.tick_bottom()
使用
seaborn
的替代方法(我的最爱)import numpy as np
import matplotlib.pyplot as plt
import seaborn
seaborn.set(style='ticks')
x = np.linspace(0.2,10,100)
fig, ax = plt.subplots()
ax.plot(x, 1/x)
ax.plot(x, np.log(x))
ax.set_aspect('equal')
ax.grid(True, which='both')
seaborn.despine(ax=ax, offset=0) # the important part here
使用书脊的
set_position
方法这是
set_position
method of spines的文档:因此,您可以将左脊椎放置在以下任何位置:
ax.spines['left'].set_position((system, poisition))
其中
system
在该坐标系中的位置是“向外”,“轴”或“数据”,以及position
。关于matplotlib - 在matplotlib图中显示原点轴(x,y),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25689238/