我想从包含三列数据(x、y、phi)的 .csv 表创建一个曲面图(如下所示),但我得到的只是一个线图(见第二张图片)。数据表可从提供的链接下载。如果有人知道如何解决这个问题,我们将不胜感激您的帮助。
\documentclass[12pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\begin{document}
\section{Contour Plot}
\begin{tikzpicture} \begin{axis}[
title={computational potential}, xmin=-3, xmax=3, ymin=0, ymax=3,
view={0}{90},
colorbar horizontal,
mesh/ordering=x varies,
]
\addplot3 [surf,
] table [col sep=comma] {computational_potential.csv}; \end{axis}
\end{tikzpicture}
\end{document}
答案1
一开始我以为,因为数据位于线中,所以它不跨越任何表面,因此无法使用。 -但不同的线确实跨越了表面。通常,数据的格式为
<x1> <y1> <z>
<x1> <y2> <z>
<x1> <y3> <z>
<x2> <y1> <z>
<x2> <y2> <z>
<x2> <y3> <z>
(从https://tex.stackexchange.com/a/50020/8650)
通过在数据中插入一个空白行,如下所示:
x y phi
0.5,0,0.96965
0.58333,0,0.98098
0.66667,0,1.0104
0.75,0,1.0514
0.83333,0,1.1005
...
它触发surf
接受空间中的多条线并生成以下内容: