![以一致的大小外部化 tikzviolinplots 包中的图形](https://linux22.com/image/469305/%E4%BB%A5%E4%B8%80%E8%87%B4%E7%9A%84%E5%A4%A7%E5%B0%8F%E5%A4%96%E9%83%A8%E5%8C%96%20tikzviolinplots%20%E5%8C%85%E4%B8%AD%E7%9A%84%E5%9B%BE%E5%BD%A2.png)
我正在使用 tikzviolinplots 在本地编译 pdf 图形,然后将其上传到 overleaf 上的主文档。我需要它们具有以下属性
- 每个应该具有相同的尺寸
- 图中的字体大小应与我主文档中的正文相匹配
我的问题是外部化的图形通常具有不同的高度和/或宽度。
我的问题类似这个问题但我认为还有一个额外的复杂因素,即 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]