平均能量损失

平均能量损失

我正在尝试使用\datavisualizationTikZ 显示,但即​​使重读了 pgf/TikZ 手册(第 VI 部分,第 58 节)并再次检查了所有内容,我还是没有得到预期的图。我没有收到任何错误,但显示很乱。

加载datavisualizationTikZ 库后,我正在执行以下操作:

\begin{tikzpicture}
        \datavisualization [school book axes,
                            visualize as scatter]
                            
            data [read from file={1.csv}]
            data [read from file={2.csv}]
            data [read from file={3.csv}]
        ;
\end{tikzpicture}

这里1.csv2.csv3.csv是与文件位于同一目录中的现有文件.tex,它们遵循以下格式([...]表示它继续):

x, y
0, 0
0.010000, -0.000200
0.020000, -0.005238
0.030000, -0.017640
0.040000, -0.034847
0.050000, -0.054843
0.060000, -0.076289
0.070000, -0.098301
0.080000, -0.120320
0.090000, -0.142004
[...]

根据我在 pgf 手册第 57.2 节中阅读的内容,在标题下数字准确性,与数字格式或小数精度没有冲突。

经过所有这些,输出已经退化了:

退化的可视化

这根本不是预期的图表。y值的范围从 0 到 -1,并且没有重复的x值。我不知道我做错了什么!


平均能量损失

我把整个糟糕的序言都放进去了,以防万一有什么事情把事情搞乱。

% ---DOCUMENT CLASS---
\documentclass[11pt, a4paper]{article}
\usepackage[margin=2.5cm]{geometry}
\usepackage[utf8]{inputenc}


% ---MINTED---
\usepackage{mdframed}
%\usepackage{minted}

%\BeforeBeginEnvironment{minted}{\begin{mdframed}}
%\AfterEndEnvironment{minted}{\end{mdframed}}


% ---MISC. PACKAGES---
\usepackage{setspace}
\usepackage{amssymb}
\usepackage{multirow}
\usepackage{amsmath}
\usepackage{mathtools}
\usepackage{bigints}
\usepackage{float}
\usepackage{pgfplots}
\usepackage{filecontents}



% ---FOOTNOTES---
\usepackage[symbol]{footmisc}
\renewcommand{\thefootnote}{\fnsymbol{footnote}}



% ---NEW MATH COMMANDS---
\newcommand*{\QED}{\hfill\ensuremath{\square}}
\newcommand{\z}{\mathbb{Z}}



% ---AMSTHM---
\usepackage{amsthm}
\newtheorem{cor}{Corollary}
\newtheoremstyle{big}% hname
{4em}% hSpace above
{4em}% hSpace below
{\itshape}% hBody font
{}% hIndent amount
{\bf}% hTheorem head font
{}% hPunctuation after theorem heading
{.5em}% hSpace after theorem heading
{}% 
\theoremstyle{big}
\newtheorem{prop}{Proposition}

\usepackage{amsfonts}
\usepackage{chngcntr}
\usepackage[labelfont=bf]{caption}
    \captionsetup[listing]{position=top}




% ---LISTINGS---
%\renewcommand{\listingscaption}{Code listing}
\usepackage[title]{appendix}



% ---TIKZ---
\usepackage{tikz}
\usetikzlibrary{shapes.geometric, arrows}
\usetikzlibrary{datavisualization}
\usetikzlibrary{positioning}
\tikzstyle{startstop} = [rectangle, 
                         rounded corners, 
                         minimum width=3cm, 
                         minimum height=1cm,
                         text centered, 
                         draw=black, 
                         fill=red!30]
\tikzstyle{io} = [trapezium, 
                  trapezium left angle=70, 
                  trapezium right angle=110, 
                  minimum width=0.5cm, 
                  minimum height=1cm, 
                  text centered, 
                  draw=black, 
                  fill=blue!10]
\tikzstyle{process} = [rectangle,
                       minimum width=3cm, 
                       minimum height=1cm, 
                       text centered, 
                       draw=black, 
                       fill=orange!30]
\tikzstyle{decision} = [diamond, 
                        minimum width=3cm, 
                        minimum height=1cm, 
                        text centered, 
                        draw=black, 
                        fill=green!30]
\tikzstyle{arrow} = [thick, ->, >=stealth]


% ---PLOTS---
\pgfplotsset{compat=1.12}


% ---XCOLOR---
\usepackage{xcolor}
\definecolor{bg}{rgb}{0.95,0.95,0.95}
\definecolor{dgreen}{rgb}{0.1, 0.5, 0.2}



% ---HYPERREF---
\usepackage{hyperref}
\hypersetup{
    colorlinks=true,
    linkcolor=blue,
    filecolor=magenta,      
    urlcolor=cyan,
    citecolor=dark blue
}

\newcommand{\propautorefname}{Proposition}
\newcommand{\corautorefname}{Corollary}
\newcommand{\listingautorefname}{Code Listing}





\begin{document}

\begin{tikzpicture}
    \datavisualization [school book axes,
                        visualize as scatter]
                        
        data [read from file={(1,1)_n100(1).csv}]
        data [read from file={(1,1)_n100(2).csv}]
        data [read from file={(1,1)_n100(3).csv}]
    ;
\end{tikzpicture}

\end{document}

答案1

大部分序言对这个问题没有影响。我只保留了必要的部分。

不清楚为什么标题(即数据 .csv 文件的顶行)无法正确读取/使用。为了避免此问题,请明确使用键headline并指定{x, y}为值。

通过使用headline密钥,您还必须x, y在数据文件中删除!如果不这样做,它将被视为数据点。

您可以headline在以下位置找到更多信息:http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf#pgf.headline(第 770 页)

% ---DOCUMENT CLASS---
\documentclass[11pt, a4paper]{article}
\usepackage[margin=2.5cm]{geometry}

% ---MISC. PACKAGES---
\usepackage{pgfplots}

% ---TIKZ---
\usepackage{tikz}
\usetikzlibrary{datavisualization}

% ---PLOTS---
\pgfplotsset{compat=1.16}

\begin{document}

\begin{tikzpicture}
        \datavisualization [school book axes,
                            all axes={length=6cm},
                            x axis={min value=0,max value=1,ticks={step=0.5,minor steps between steps=4}},
                            y axis={min value=-1,max value=0,ticks={step=0.5,minor steps between steps=4}},
                                visualize as scatter]

            data[headline={x, y}, read from file={1.csv}]
        ;
\end{tikzpicture}

\end{document}

来自上述数据的 PDF 示例图像

即使点显示正确,图表也很难阅读。因此,我强制将轴和刻度加长并标注。这可能对您没有用,但它可以帮助未来的读者查看图表。

正如评论中提到的那样……这是一种奇怪的行为。甚至pgf/tikz手册也显示您正确地格式化了数据文件。他们有多个一致的例子。我猜这是一个意外引入的错误?但我并不完全确定。

如果你感到疑惑的话,我在查看使用 读取数据文件的其他示例时发现了这个问题\datavisualization这个答案来自一个非常相似的问题最终帮助我发现了这个问题。

相关内容