旋转标签并更改 tikz 条形图的颜色

旋转标签并更改 tikz 条形图的颜色

我正在使用 tikzpicture 创建条形图,如下所示:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{pgfplots}

\title{test}
\author{}
\date{}

\begin{document}

\maketitle

\begin{figure}
    \centering
    \begin{tikzpicture}
    \begin{axis}[
        symbolic x coords={RSA1024,RSA2048,RSA4096,Kyber512,Kyber768,Kyber1024}, xtick=data]
        \addplot[ybar,fill=blue] coordinates {
            (RSA1024,483)
            (RSA2048,489)
            (RSA4096,536)
            (Kyber512,120)
            (Kyber768,111)
            (Kyber1024,143)
        };
    \end{axis}
    \end{tikzpicture}
    \caption{Some caption}
    \label{fig:my_label}
\end{figure}

\end{document}

目前看起来是这样的:

在此处输入图片描述

但是,标签几乎互相重叠,看起来不太好。我希望它们旋转 60 度角。我该怎么做?

其次,我希望最右边的 3 个条形的颜色与左边的 3 个条形不同。我希望左边的 3 个条形为蓝色,右边的 3 个条形为橙色。我该怎么做?我尝试在同一张图片中多次使用 addplot,但没有成功。

下面是我希望这些变化看起来的样子:

在此处输入图片描述

答案1

可以在同一张图片中多次使用 addplot 来获得不同的颜色。选项xticklabel style={xshift=-10pt, rotate=60}会旋转标签并将其向右移动,这样它们在条形图上就会相邻。

\documentclass[tikz,border=10]{standalone}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        symbolic x coords={RSA1024,RSA2048,RSA4096,Kyber512,Kyber768,Kyber1024}, 
        xtick={RSA1024,RSA2048,RSA4096,Kyber512,Kyber768,Kyber1024}, 
        xticklabel style={xshift=-10pt, rotate=60}]
        \addplot[ybar,fill=blue] coordinates {
            (RSA1024,483)
            (RSA2048,489)
            (RSA4096,536)
        };
        \addplot[ybar,fill=orange] coordinates {
            (Kyber512,120)
            (Kyber768,111)
            (Kyber1024,143)
        };
    \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容