我的代码创建了一个条形图,但条形非常细且相距很远。另外,我想在每个条形下分别添加标签(“比特币”和“VISA”),但这对我来说也不起作用……
\documentclass[border=5mm]{standalone}
\usepackage{filecontents}
\begin{filecontents*}{cfets.csv}
column1 column2
8 1005
14 169
\end{filecontents*}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
bar width=.4cm,
enlarge x limits={abs=.4cm},
xtick=data,
x tick label style={color=white},
nodes near coords,
nodes near coords align={vertical},
ymin=0,ymax=1200,
ylabel={Energy consumption in kilowatt-hours},
]
\addplot table[x expr=\coordindex,y=column2] {cfets.csv};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
欢迎使用 TeX.SE!例如,您可以使用x=1.1cm
在axis
选项中使用来确定X矢量。这将使这里的条形图彼此更接近,并减少绘图宽度(在您的代码中,pgfplots
确定X和是单位以获得\axisdefaultwidth
宽和\axisdefaultheight
高的图,这些默认值分别为 240 和 207 点,这给出了用 制作的图的惯用矩形框pgfplots
。
对于您的比特币和 VISA 标签,我的建议是将它们包含在您的数据中,例如像这样:
column1 column2
Bitcoin 1005
VISA 169
symbolic x coords={Bitcoin,VISA}
并与 一起使用\addplot table[x=column1, y=column2] {cfets.csv};
。
我也small
用过axis
来减小字体大小——现在条形图不再那么宽,也不再那么紧密;我们不想X标签相互接触。我建议设置最近的pgfplots
兼容级别,如\pgfplotsset{compat=1.16}
。
最后,请注意这filecontents
软件包已过时,不适合最新的 LaTeX。因此,不再需要了\usepackage{filecontents}
。
\begin{filecontents*}{cfets.csv}
column1 column2
Bitcoin 1005
VISA 169
\end{filecontents*}
\documentclass[tikz, border=2mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
small,
ybar,
x=1.1cm, bar width=.6cm,
enlarge x limits={abs=.4cm},
symbolic x coords={Bitcoin,VISA},
xtick=data,
nodes near coords, nodes near coords align={vertical},
ymin=0, ymax=1200,
ylabel={Energy consumption in kilowatt-hours},
]
\addplot table[x=column1, y=column2] {cfets.csv};
\end{axis}
\end{tikzpicture}
\end{document}