Estoy intentando crear un gráfico de barras donde los valores a lo largo del eje x no son relevantes. Mi código actual es este:
\documentclass{article}
\beging{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[ylabel=Similarity,
ybar]
\addplot table[y=Pref, col sep=comma] {5_Results/evalresults.csv};
\addplot table[y=Rec, col sep=comma] {5_Results/evalresults.csv};
\end{axis}
\end{tikzpicture}
\caption{A bar chart of user and course similarity}
\label{evalresultsbar}
\end{figure}
\end{document}
Sin embargo, esto genera este gráfico. No solo busco eliminar los valores a lo largo del eje x, también quiero evitar que las barras se apilen una encima de la otra.
El resultado que deseo se parecería a este gráfico generado por Google Sheets:
El contenido de evalresults.csv
Pref,Rec,label
0.00,14.29,a
0.00,16.67,a
0.00,16.67,a
0.00,20.00,a
0.00,20.00,a
0.00,25.00,a
0.00,33.33,a
0.00,33.33,a
0.00,33.33,a
0.00,50.00,a
0.00,50.00,a
0.00,50.00,a
0.00,50.00,a
0.00,50.00,a
0.00,60.00,a
0.00,60.00,a
0.00,60.00,a
33.33,25.00,a
33.33,25.00,a
33.33,33.33,a
33.33,33.33,a
33.33,60.00,a
33.33,60.00,a
33.33,66.67,a
33.33,75.00,a
33.33,75.00,a
33.33,75.00,a
33.33,80.00,a
33.33,80.00,a
33.33,100.00,a
66.67,75.00,a
66.67,80.00,a
66.67,100.00,a
66.67,100.00,a
66.67,100.00,a
66.67,100.00,a
100.00,100.00,a
Respuesta1
Deberá especificar la coordenada x de alguna manera, así que agregue x expr=\coordindex
las opciones para table
, como se ve a continuación.
Agregué algunos comentarios en el código.
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\usepackage{pgfplotstable} % for pgfplotstableread, but you can use the filename in the \addplot as you did instead
\pgfplotstableread[col sep=comma]{
Pref,Rec,label
0.00,14.29,a
0.00,16.67,a
0.00,16.67,a
0.00,20.00,a
0.00,20.00,a
0.00,25.00,a
0.00,33.33,a
0.00,33.33,a
0.00,33.33,a
0.00,50.00,a
0.00,50.00,a
0.00,50.00,a
0.00,50.00,a
0.00,50.00,a
0.00,60.00,a
0.00,60.00,a
0.00,60.00,a
33.33,25.00,a
33.33,25.00,a
33.33,33.33,a
33.33,33.33,a
33.33,60.00,a
33.33,60.00,a
33.33,66.67,a
33.33,75.00,a
33.33,75.00,a
33.33,75.00,a
33.33,80.00,a
33.33,80.00,a
33.33,100.00,a
66.67,75.00,a
66.67,80.00,a
66.67,100.00,a
66.67,100.00,a
66.67,100.00,a
66.67,100.00,a
100.00,100.00,a
}\data
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ylabel=Similarity,
ybar,
% reduce bar width
bar width=1pt,
% to remove whitespace below bars
ymin=0,
% only want the x-axis on the bottom
axis x line=bottom,
% add some horizontal space between bars and axis limits
enlarge x limits=0.05,
% don't draw the ticks
tick style={draw=none},
% remove x ticks
xtick=\empty,
% enable grid
grid=major,
% don't draw the vertical lines for the y-axes
every outer y axis line/.style={draw=none},
%position legend outside the axis, top right
legend pos=outer north east,
% don't draw box around legend
legend style={draw=none}
]
\addplot [fill=red!50,draw=none] table[x expr=\coordindex,y=Pref, col sep=comma] {\data};
\addplot [fill=blue!30,draw=none] table[x expr=\coordindex,y=Rec, col sep=comma] {\data};
\addlegendentry{Pref}
\addlegendentry{Rec}
\end{axis}
\end{tikzpicture}
\end{document}