如何使不连续性变得更小、从轴上删除刻度标记并正确定位轴标签?

如何使不连续性变得更小、从轴上删除刻度标记并正确定位轴标签?

我正在尝试使用 PGF/TikZ 绘制 y=e^(1/x) 的图形。

我一直未能解决以下三个问题:

  1. 我希望轴标签看起来美观

我希望 y 轴标签位于 y 轴的右上方,就像在书中一样

类似地,我希望 x 轴标签位于 x 轴的右下角

目前,它们不在这些地方,而且看起来并不“好看”

  1. 我想让不连续性变得更小,这样看起来更美观。

  2. 如何删除 y 轴上的刻度标记?

下面是一个简短的可执行示例。我删除了许多额外的软件包,但有些软件包仍然存在;我对进入并对这些序言部分进行重大更改没有十足的信心。

非常感谢您花时间帮助我克服这些障碍,并忽略了以下代码中一些不那么重要的部分。

\documentclass{article}
\usepackage[utf8]{inputenc}

%maths
\usepackage{mathtools}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}

%tikzpicture
\usepackage{tikz}
\usepackage{scalerel}
\usepackage{pict2e}
\usepackage{tkz-euclide}

\usetikzlibrary{calc}
\usetikzlibrary{patterns,arrows.meta}
\usetikzlibrary{shadows}
\usetikzlibrary{external}
\usetikzlibrary{decorations.markings}

%pgfplots
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{statistics}
\usepgfplotslibrary{fillbetween}

\pgfplotsset{
    standard/.style={
    axis line style = thick,
    trig format=rad,
    enlargelimits,
    axis x line=middle,
    axis y line=middle,
    enlarge x limits=0.15,
    enlarge y limits=0.15,
    every axis x label/.style={at={(current axis.right of origin)},anchor=north west}
    every axis y label/.style={at={(current axis.above origin)},anchor=south east}
    grid=both,
    ticklabel style={font=\tiny,fill=white}
    }
}

\begin{document}
      \begin{tikzpicture}
    \begin{axis}[
    %standard,
    xmin=-2, xmax=4,
    ymin=-2,ymax=4,
    axis lines=middle,
    xtick={-1/2},
    ytick={},
    yticklabels={},
    xticklabels={$-\frac{1}{2}$},
    %ticks=none,
    x label style={at={(ticklabel cs:1)},anchor=north},
    y label style={at={(ticklabel cs:1)},rotate=0,anchor=west},
    xlabel={$x$},
    ylabel={$y$}]
    %\clip (-2,-2) rectangle (4,2);
    \addplot [
        domain=-2:-0.51, 
        samples=100, 
        color=black]
    {e^(1/x)};
    \addplot[mark=*, fill=black, forget plot] coordinates{(-0.5,0.136)};
    \addplot [
        domain=-0.49:-0.1, 
        samples=100, 
        color=black]
    {e^(1/x)};
    \addplot[mark=*, fill=white, forget plot] coordinates{(0,0)};
    \addplot [
        domain=0.1:4, 
        samples=100, 
        color=black]
    {e^(1/x)};
    \path[draw,dashed] (-2,1) -- (4,1);
    \end{axis}
    \end{tikzpicture}
\end{document}

答案1

  • 您的文档示例不够简洁,在序言中加载了许多不相关的包并定义了不相关的命令。在我的 MWE 中,我删除了所有这些,
  • 如果你有很多问题,你应该只关注一个……
  • 目前还不完全清楚,你在寻找什么,所以我想,你正在寻找这样的东西:

在此处输入图片描述

该图由以下 MWE(最小工作示例,一个小但完整、可编译的文档)生成:

\documentclass[border=3.141592]{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat=newest}
%\usepgfplotslibrary{statistics}    % not used in this example
%\usepgfplotslibrary{fillbetween}   % not used in this example

\pgfplotsset{compat=1.18}

\begin{document}
      \begin{tikzpicture}
    \begin{axis}[
    axis lines=middle,
    ymin=-1, ymax=10, 
    xtick={-1/2},
    ytick=\empty,  % <--- changed
    xlabel={$x$},   
    ylabel={$y$},   
    tick label style={font=\footnotesize},
    label style={below left},
    restrict y to domain=-2:100,    % <------ added
    samples=200,
    every axis plot post/.append style={very thick},
        ]
    \addplot [domain=-2:4] {e^(1/x)};
    \path[draw,dashed] (-2,1) -- (4,1);
    \end{axis}
    \end{tikzpicture}
\end{document}

相关内容