tikzpicture 简历图表

tikzpicture 简历图表

我在使用 tikzpicture 时遇到了问题。我用 Latex 制作了我的简历,但有一点不太好。第一个图表应该看起来和其他图表一样。如果我删除了放大 y 限制 = {abs=1cm},图表将有多个条目出现两次。但这是代码。提前谢谢您。

\begin{center}

\begin{tikzpicture}[thick,scale=0.8, every node/.style={scale=0.8},every node/.style={font=\sffamily}]
\begin{axis}[title  = \textbf{Sprachen},
xbar,
y axis line style = { opacity = 0 },
axis x line       = none,
tickwidth         = 0pt,
enlarge y limits={abs=1cm},
enlarge x limits  = 0.02,
symbolic y coords = { Französisch, Englisch, Deutsch},
%nodes near coords,
xmin=0,
xmax=1,
]
\addplot coordinates { 
    (1,Deutsch)
    (0.65,Englisch)
    (0.3,Französisch)
};

%\legend{Topics}
\end{axis}
\node[text width=3cm] at (1.5,-0.5) 
{Grundkennt.};
\node[text width=3cm] at (5.25,-0.5) 
{gut};
\node[text width=3cm] at (7.4,-0.5) 
{sehr gut};
\draw (2.5,0.1) -- (2.5, 5.5);
\draw (5,0.1) -- (5, 5.5);
\end{tikzpicture}
\end{center}

例子

编辑以更好地解释问题:

以下 MWE:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{pgfplots}\pgfplotsset{compat=1.13}
\begin{document}
    
\begin{center}

\begin{tikzpicture}[thick,scale=0.8, every node/.style={scale=0.8},every node/.style={font=\sffamily}]
\begin{axis}[title  = \textbf{Sprachen},
xbar,
y axis line style = { opacity = 0 },
axis x line       = none,
tickwidth         = 0pt,
enlarge x limits  = 0.02,
symbolic y coords = {Französisch, Englisch, Deutsch},
%nodes near coords,
xmin=0,
xmax=1,
]
\addplot coordinates { 
    (1,Deutsch)
    (0.65,Englisch)
    (0.3,Französisch)
};

%\legend{Topics}
\end{axis}
\node[text width=3cm] at (1.5,-0.5) 
{Grundkennt.};
\node[text width=3cm] at (5.25,-0.5) 
{gut};
\node[text width=3cm] at (7.4,-0.5) 
{sehr gut};
\draw (2.5,0.1) -- (2.5, 5.5);
\draw (5,0.1) -- (5, 5.5);
\end{tikzpicture}
\end{center}
\end{document}

有重复的垂直条目:

在此处输入图片描述

...通过添加以下内容似乎可以纠正问题

enlarge y limits={abs=1cm}, 

但是如果有虚假的垂直空间---会发生什么?

答案1

您可以使用y=1cm来设置符号坐标之间的距离。该节点current axis可用于绘制黑线。另外,我会修剪左侧的图,以便所有条形图都左对齐。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}% loads also tikz
\pgfplotsset{compat=1.13}

\tikzset{
  mycvplot/.style={
    thick,
    scale=.8,
    nodes={scale=.8,font=\sffamily},
    trim left=-4em,
    /pgfplots/every axis/.append style={
      xbar,
      axis line style={draw=none},
      tickwidth=0pt,
      enlarge x limits=.05,
      xmin=0,xmax=1,
      xtick={.15,.52,.92},
      xticklabels={Grundkennt.,gut,sehr gut,},
      y=1cm,
      enlarge y limits={abs=.5cm},
      ytick=data,
      title style={at={(.52,1)}}
    }
  }
}

\newcommand\cvplotlines{
  \foreach \x in {2.5,5}
    \draw (\x,0|-current axis.south) -- (\x,0|-current axis.north);
}

\usepackage{showframe}% to show the page layout
\begin{document}

\begin{center}
\begin{tikzpicture}[mycvplot]
  \begin{axis}[
      title  = \textbf{Sprachen},
      symbolic y coords = {Französisch, Englisch, Deutsch},
    ]
    \addplot coordinates { 
        (1,Deutsch)
        (0.65,Englisch)
        (0.3,Französisch)
    };
  \end{axis}
  \cvplotlines
\end{tikzpicture}
\end{center}

\begin{center}
\begin{tikzpicture}[mycvplot]
  \begin{axis}[
      title  = \textbf{Programmiersprachen},
      symbolic y coords = {HTML/JavaScript,S,C\#,C,\LaTeX,Python},
    ]
    \addplot coordinates { 
        (1,Python)
        (1,\LaTeX)
        (0.65,C)
        (0.65,C\#)
        (0.65,S)
        (0.3,HTML/JavaScript)
    };
  \end{axis}
  \cvplotlines
\end{tikzpicture}
\end{center}
\end{document}

结果:

在此处输入图片描述

答案2

可以通过添加选项来删除双勾ytick=data。间距较大是因为条形图分布均匀,以填充图高。添加其他条目可以证明这一点。

在此处输入图片描述

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{pgfplots}\pgfplotsset{compat=1.13}
\begin{document}

\begin{center}

\begin{tikzpicture}[thick,scale=0.8, every node/.style={scale=0.8},every node/.style={font=\sffamily}]
\begin{axis}[title  = \textbf{Sprachen},
xbar,
y axis line style = { opacity = 0 },
axis x line       = none,
tickwidth         = 0pt,
enlarge x limits  = 0.02,
symbolic y coords = {Französisch, Englisch, Deutsch},
ytick=data,
%nodes near coords,
xmin=0,
xmax=1,
]
\addplot coordinates { 
    (1,Deutsch)
    (0.65,Englisch)
    (0.3,Französisch)
};

%\legend{Topics}
\end{axis}
\node[text width=3cm] at (1.5,-0.5) 
{Grundkennt.};
\node[text width=3cm] at (5.25,-0.5) 
{gut};
\node[text width=3cm] at (7.4,-0.5) 
{sehr gut};
\draw (2.5,0.1) -- (2.5, 5.5);
\draw (5,0.1) -- (5, 5.5);
\begin{scope}[xshift=10cm]
\begin{axis}[title  = \textbf{Sprachen},
xbar,
y axis line style = { opacity = 0 },
axis x line       = none,
tickwidth         = 0pt,
enlarge x limits  = 0.02,
symbolic y coords = {Japanisch, Rumänisch, Französisch, Englisch, Deutsch},
ytick=data,
%nodes near coords,
xmin=0,
xmax=1,
]
\addplot coordinates { 
    (1,Deutsch)
    (0.65,Englisch)
    (0.3,Französisch)
    (0.2,Rumänisch)
    (0.1,Japanisch)
};

%\legend{Topics}
\end{axis}
\node[text width=3cm] at (1.5,-0.5) 
{Grundkennt.};
\node[text width=3cm] at (5.25,-0.5) 
{gut};
\node[text width=3cm] at (7.4,-0.5) 
{sehr gut};
\draw (2.5,0.1) -- (2.5, 5.5);
\draw (5,0.1) -- (5, 5.5);
\end{scope}

\end{tikzpicture}
\end{center}
\end{document}

相关内容