如何从绘图中完全去除x轴(和y轴),并使用Python或R编程在某些点绘制切线?

Pou*_*del 3 python plot r matplotlib ggplot2

我必须创建一个具有轴被抑制的图和定期绘制的切线,如下图所示.
使用R编程,我知道如何抑制刻度线并创建绘图.
但我不知道如何压制整个轴.

在这里,我需要省略整个a轴以及其他轴,例如顶轴和右轴.

我最初的尝试是这样的:

tau <- seq(-5,5,0.01)
a <- 0.4              # a is a constant parameter
sigma <- a*tau        # tau is a variable, sigma = a*tau
x <- 1/a*cosh(sigma)  
y <- 1/a*sinh(sigma)

 # plot
plot(x,y,type="l",xaxt="n",yaxt="n")
abline(h=0,lty=1)
Run Code Online (Sandbox Code Playgroud)

该图还需要在点处的点和切线a*tau = -1,-0.5, 0, 0.5 and 1.

我遵循的链接如下:
根据数据,绘制切线到绘图并使用绘图中某些点之间的R 线找到X轴截距
?(带R)

所需的情节如下所示:
在python或R中的任何建议都真的很受欢迎!! 在此输入图像描述

unu*_*tbu 6

使用Python,

import numpy as np
import matplotlib.pyplot as plt

tau = np.arange(-5, 5, 0.01)
a = 0.4  

sigma = a*tau 
x = 1/a*np.cosh(sigma)  
y = 1/a*np.sinh(sigma)

fig, ax = plt.subplots()
ax.plot(x, y, c='black')

# approximate the curve by a cubic
dxds = np.poly1d(np.polyfit(sigma, x, 3)).deriv()
dyds = np.poly1d(np.polyfit(sigma, y, 3)).deriv()

xs, ys, dxs, dys = [], [], [], []
for s in np.linspace(-1, 1, 5):
    # evaluate the derivative at s
    dx = np.polyval(dxds, s)
    dy = np.polyval(dyds, s)

    # record the x, y location and dx, dy tangent vector associated with s
    xi = 1/a*np.cosh(s)  
    yi = 1/a*np.sinh(s)
    xs.append(xi)
    ys.append(yi)
    dxs.append(dx)
    dys.append(dy)
    if s == 0:
        ax.text(xi-0.75, yi+1.5, '$u$', transform=ax.transData) 
        ax.annotate('$a^{-1}$',
                    xy=(xi, yi), xycoords='data',
                    xytext=(25, -5), textcoords='offset points',
                    verticalalignment='top', horizontalalignment='left', 
                    arrowprops=dict(arrowstyle='-', shrinkB=7))

ax.quiver(xs, ys, dxs, dys, scale=1.8, color='black', scale_units='xy', angles='xy',
          width=0.01)
ax.plot(xs, ys, 'ko')

# http://stackoverflow.com/a/13430772/190597 (lucasg)
ax.set_xlim(-0.1, x.max())
left, right = ax.get_xlim()
low, high = ax.get_ylim()
ax.arrow(0, 0, right, 0, length_includes_head=True, head_width=0.15 )
ax.arrow(0, low, 0, high-low, length_includes_head=True, head_width=0.15 ) 
ax.text(0.03, 1, '$t$', transform=ax.transAxes)
ax.text(1, 0.47, '$x$', transform=ax.transAxes)

plt.axis('off')
ax.set_aspect('equal')
plt.show()
Run Code Online (Sandbox Code Playgroud)

产量

在此输入图像描述