Pgfplot/tikz 图创建

Pgfplot/tikz 图创建
\documentclass[11pt]{article}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}

\begin{figure}
    \centering
    \resizebox{\textwidth}{!}{%
        \begin{tikzpicture}
            \begin{axis}[
                axis lines=middle,
                xmin=-10, xmax=15,
                ymin=-200, ymax=260,
                xlabel=$x$, xlabel style={below right},
                ylabel=$y$, ylabel style={above left},
                xtick={-10,1,15},
                ytick={-200, 25, 250},
                tick style={thick},
            ]
            \addplot[blue,thick,samples=100] {x^3-9*x^2-30*x+200};
            \end{axis}
        \end{tikzpicture}
        }%
\end{figure}

\end{document}

当我输入此代码时,我得到以下信息:在此处输入图片描述

但我真正想要的是这样的:在此处输入图片描述

这意味着我遇到了一些问题,我不知道如何解决。

  1. 我尝试绘制的函数 (x^3 - 9x^2 - 30x + 200) 无法完全呈现。我不确定该怎么办。
  2. 我想在轴上制作“幽灵刻度”,这些刻度是可见的,但没有附加数字。另外,我想显示数字 250 和 15,而“刻度”不位于箭头上方。
  3. 如果我要使轴上的数字变小,我该怎么做?

抱歉,如果这个问题的答案很明显,我最近才开始使用 LaTeX。

新问题: 这太小事了。我不想为此专门创建一个新帖子。

这是我当前的代码

\begin{figure}[hbt!]
\centering
    \begin{tikzpicture}
        \begin{axis}[width=14cm,
            axis lines=middle,
            grid=major,
            xmin=-5, xmax=50.5,
            ymin=-2, ymax=10.5,
            xlabel=$x$, xlabel style={right},
            ylabel=$y$, ylabel style={above},
            tick style={thick},
            ticklabel style={font=\normalsize},
            xtick={0,5,...,50}, extra x ticks={-5}, extra x tick style={grid=none},
            ytick={0,2,...,10}, minor ytick={-1,1,...,9},extra y ticks={-2}, extra y tick style={grid=none},
            legend entries={0.5x},
                    legend style={
                at={(0.8,0.937)},
                anchor=north,
                legend columns=1},
                legend cell align={left}
        ]
        \addplot[blue,thick,samples=100,domain=-5:50] {sqrt(x)};
        \addplot[red,thick,samples=100,domain=-5:50] {0.5*x};
        \legend{$f(x)=\sqrt{x} \; {,} \; x \geq 0$ , $g(x)=0.5x$}
        \end{axis}
    \end{tikzpicture}
\end{figure}

它显示了这一点: 在此处输入图片描述

我的问题:为什么图表没有完全sqrt(x)显示/一直到(0,0)?

答案1

通过添加适当的域,可以实现绘图的“完整渲染”。幻影刻度是小刻度。可以通过添加 使数字变小ticklabel style={font=\tiny}。可以使用 键控制绘图的宽度width,请勿使用\resizebox。还建议添加compat键。

\documentclass[11pt]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}

\begin{figure}
    \centering
        \begin{tikzpicture}
            \begin{axis}[width=\textwidth,
                axis lines=middle,
                xmin=-10, xmax=15.5,
                ymin=-200, ymax=260,
                xlabel=$x$, xlabel style={below right},
                ylabel=$y$, ylabel style={above left},
                xtick={-10,1,15},
                ytick={-200, 25, 250},
                tick style={thick},
                minor xtick={-9,-8,...,14},
                minor y tick num=10,
                ticklabel style={font=\tiny}
            ]
            \addplot[blue,thick,samples=100,domain=-10:15] {x^3-9*x^2-30*x+200};
            \end{axis}
        \end{tikzpicture}
\end{figure}

\end{document}

在此处输入图片描述

附录:绘制逐步定义的函数。

\documentclass[11pt,fleqn]{article}
\usepackage{amsmath}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
Suppose we want to plot the function
\[ f(x)=\begin{cases}
 \frac{x^2}{2}-2x+3\;, & x\le 4\;,\\
 x-1\;, & x>4\;.
\end{cases}\]
Then one can declare a function using the `ifthenelse` function,
\begin{quote}
 \verb|declare function={f(\x)=ifthenelse(\x<=4,0.5*\x^2-2*\x+3,\x-1);}|\;.
\end{quote}
The result is shown in Figure~\ref{fig:f}.

\begin{figure}[htb]
    \centering
        \begin{tikzpicture}[declare
        function={f(\x)=ifthenelse(\x<=4,0.5*\x^2-2*\x+3,\x-1);}]
            \begin{axis}[width=\textwidth,
                axis lines=middle,
                xmin=-10, xmax=15.5,
                xlabel=$x$, xlabel style={below right},
                ylabel=$f(x)$, ylabel style={above left},
                xtick={-10,1,15},
                tick style={thick},
                minor xtick={-9,-8,...,14},
                minor y tick num=1,
                ticklabel style={font=\tiny}]
            \addplot[blue,thick,samples=100,domain=-10:15] {f(x)};
            \end{axis}
        \end{tikzpicture}
 \caption{$f(x)$.}      
 \label{fig:f}
\end{figure}
\end{document}

在此处输入图片描述

相关内容