Каков наилучший способ нанесения координат в Latex?

Каков наилучший способ нанесения координат в Latex?

Мне нужно построить график некоторых точек; просто простой список значений x и y, а затем соединить их отрезками линий. В настоящее время я строю график в Excel и импортирую изображение в Latex, и он выглядит не очень хорошо. Есть ли способ построить график координат, используя только Latex?

решение1

Точки данных можно вводить напрямую с помощью dataкоманды из datavisualizationбиблиотеки. То же самое применимо, если у вас есть функция вместо точек данных. Вот несколько примеров, адаптированных из TiкРуководство пользователя Z-PGF:

\documentclass[border=2mm,tikz]{standalone}
\usetikzlibrary{datavisualization}
\begin{document}

\begin{tikzpicture}
\datavisualization [school book axes, visualize as smooth line]
    data {
       x, y
    -1.5, 2.25
      -1, 1
     -.5, .25
       0, 0
      .5, .25
       1, 1
     1.5, 2.25
    };
\end{tikzpicture}

\end{document}

введите описание изображения здесь

Изменение стиля осей, например, на научный, может придать другой вид:

\datavisualization [scientific axes, all axes={grid}, visualize as smooth line]

введите описание изображения здесь

Кроме того, если у вас есть под рукой эта функция, это может быть довольно просто:

\documentclass[border=2mm,tikz]{standalone}
\usetikzlibrary{datavisualization.formats.functions}
\begin{document}

\begin{tikzpicture}
  \datavisualization [school book axes, visualize as smooth line]
    data [format=function] {
      var x : interval [-1.5:1.5] samples 7;
      func y = \value x*\value x;
    };
\end{tikzpicture}

\end{document}

с тем же результатом, что и ввод точек данных:

введите описание изображения здесь

решение2

Вот пример использования pgfplots. Данные также можно считать из csvфайла или вычислить с помощью формул.

введите описание изображения здесь

\documentclass[border=2mm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
  \begin{axis}
    \addplot coordinates {
      (1,  1)
      (2,  4)
      (3,  9)
      (4, 16)
      (5, 25)
    };
  \end{axis}
\end{tikzpicture}
\end{document}

решение3

Вот небольшой пример, созданный с помощью , PSTricksа не с помощью TikZ. Все еще не понимаю, почему многие пользователи уже оставляют эту возможность строить графику с помощью PSTricks.

введите описание изображения здесь

\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-plot}
\usepackage{pst-eucl}

\psset{algebraic,arrows=->}
\def\f{x^2}

\begin{document}
\begin{pspicture}(-5,-3)(5,5)
    \psaxes[linewidth=.5pt,linecolor=darkgray](0,0)(-4,-1)(3,4)[$x$,0][$y$,90]
    \psplot[linecolor=magenta]{-5}{5}{\f}
    \pstGeonode[PosAngle=-30,PointNameSep=15pt,PointName={{\scriptstyle(0,.5)},{\scriptstyle(1,f(2))}}]
            (0,0.5){F}(*1 {\f(x)}){A}
    \end{pspicture}
\end{document}

решение4

Если вы немного знакомы с R, knitr — хороший вариант:

мве

\documentclass{article}
\begin{document}
<<echo=F, fig.cap="One simple plot.", dev='tikz'>>=
df <- data.frame(x = c(1,2,3,4,5,6,7), y= c(1,2,4,8,16,32,64))
plot(df, pch=16, col="red")
lines(df$x,df$y, col="red", lwd=3)
@
\end{document}

Связанный контент