非常精美的条形图

非常精美的条形图

只是想知道这是否可以用 tikz 完成?我知道我应该至少提供 MWE,但我对 latex 还不熟悉,完全不知道从哪里开始。

在此处输入图片描述

MWE(由 HK 添加)

\documentclass[tikz,border=5mm]{standalone}
\usetikzlibrary{positioning,shadows}
\tikzset{
  %% fill styles if needed
}

\begin{document}
  \begin{tikzpicture}
    \node (a) at (0,0)  {a};
  \end{tikzpicture}
\end{document}

答案1

这是一个粗略的近似值...我没有尝试复制 MWE 中的数字,也没有对细节进行微调。

在此处输入图片描述

代码如下:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{3d}
\usetikzlibrary{calc}
\usetikzlibrary{patterns}
\begin{document}

% \Yvalue{x-coordinate}{y-coordinate}{colour}
\newcommand\drawYvalue[3]{%
  \draw[fill=#3!30](#1,0,1)--++(-1,0,0)--++(0,#2,0)--++(1,0,0)--cycle;
  \draw[fill=#3!10](#1,#2,1)--++(-1,0,0)--++(0,0,-1)--++(1,0,0)--cycle;
  \draw[fill=#3!15](#1,0,1)--++(0,0,-1)--++(0,#2,0)--++(0,0,1)--cycle;
 }

\begin{tikzpicture}
  \foreach \x in {0,4,8} {
    \draw[pattern=north east lines, pattern color=blue!10]
           (\x,0,0)--++(2,0,0)--++(0,6,0)--++(-2,0,0)--cycle;
  }
  \foreach \x in {0,2,4,6} {
    \draw[blue!50](\x,0,2)--++(0,0,-2)--++(0,6,0);
  }
  \draw[blue!50](0,0,2)--++(0,6,0);
  \foreach \y in {0,2,4,6} {
    \draw[blue!50](10,\y,0)--++(-10,0,0)--++(0,0,2);
  }
  \foreach \y/\txt [count=\x]
    in {3/Label 1, 4/Label 2, 1/Label 3, 5/Label 4,6/Label 5} {
    \drawYvalue{2*\x-0.5}{\y}{\ifodd\x yellow\else green\fi}
    \begin{scope}[canvas is zx plane at y=0]
      \node[transform shape,rotate=180] at (3,2*\x-1)[anchor=west,align=right]{\txt};
    \end{scope}
  }
\end{tikzpicture}

\end{document}

相关内容