以一致的大小外部化 tikzviolinplots 包中的图形

以一致的大小外部化 tikzviolinplots 包中的图形

我正在使用 tikzviolinplots 在本地编译 pdf 图形,然后将其上传到 overleaf 上的主文档。我需要它们具有以下属性

  1. 每个应该具有相同的尺寸
  2. 图中的字体大小应与我主文档中的正文相匹配

我的问题是外部化的图形通常具有不同的高度和/或宽度。

我的问题类似这个问题但我认为还有一个额外的复杂因素,即 tikviolinplot 包对每一把小提琴都使用一个轴环境。

这是一个例子。我对我的每一幅图都使用了这种类型的脚本。我需要的是,如果下面的文件生成 fig22.pdf,而类似的文件通过 tikzexternalize 生成 fig23.pdf,则两个 pdf 应该具有相同的尺寸和纵横比。

\documentclass[10pt,a4paper]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{subcaption}
% Package for si units
\usepackage{siunitx}

% Packages for making pictures with LaTeX
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning,fit,backgrounds,calc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usepackage{tikzviolinplots}
\usepgfplotslibrary{external}
\tikzexternalize
\usepackage{minted}
\usemintedstyle{gruvbox-light}
\usepackage{scontents}

% Package to superimpose text on an image
\usepackage[percent]{overpic}

\begin{document}
        \begin{figure}[ht!]
            \centering
            \pgfplotsset{height=6cm,width=8cm}
             \begin{tikzpicture}
                  \violinsetoptions[
                        averages,
                        data points,
                        scaled  
                    ]{
                        xmin=0,xmax=4,
                        ymin=0,ymax=1,
                        xlabel style={
                        yshift = {-3*width("a")}
                        },
                        ymajorgrids=true,
                        ylabel={ylabel text},
                    }
            \violinplot[%
            index=col1,
            relative position=1,
            color=red,
            label={COL 1},
            col sep=comma,
            ]{fig22.csv}
            \violinplot[%
            index=col2,
            relative position=2,
            color=blue,
            label={COL 2},
            col sep=comma,
            ]{fig22.csv}
            \violinplot[%
            index=col3,
            relative position=3,
            color=purple,
            label={COL 3},
            col sep=comma,
            ]{fig22.csv}
        \end{tikzpicture}
    \end{figure}
    
\end{document}

线路\pgfplotsset{height=6cm,width=8cm}的动机是我曾尝试过的各种尝试,以遵循tikzviolinpackage 的使用说明用于调整图形大小。在链接的文档中,他们指出图形和字体缩放是软件包的限制之一。

编辑:fig22 的示例 csv 文件

index,col1,col2,col3
0,0.0,0.044,0.0
1,0.5,0.339,0.38
2,0.3333,0.35,0.54667
3,0.4575,0.417,0.7085
4,0.6,0.5884,0.8316
5,0.83333,0.732333,0.764333
6,0.856857,0.752286,0.835143
7,0.94225,0.8675,0.87675
8,1.0,0.931778,0.917556
9,1.0,1.0,1.0

fig23 的示例 csv 文件

index,col1,col2,col3
0,-0.49,-0.55,-0.45
1,0.1,0.01,0.02
2,0.3333,0.35,0.54667
3,0.4575,0.417,0.7085
4,0.6,0.5884,0.8316
5,0.83333,0.732333,0.764333
6,0.856857,0.752286,0.835143
7,0.94225,0.8675,0.87675
8,1.0,0.931778,0.917556
9,1.0,1.0,1.0

这不是我的实际数据,但我认为应该能说明问题。对于我拥有的 tex 文件类型,生成的外部化 fig22.pdf 将比 fig23.pdf 短。我认为这是因为 fig22 的 yrange 是 [0,1],而 fig23 的 yrange 是 [-.5,1]

相关内容