¿Crear un gráfico de barras con un eje x ordinal?

¿Crear un gráfico de barras con un eje x ordinal?

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: ingrese la descripción de la imagen aquí

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=\coordindexlas opciones para table, como se ve a continuación.

Agregué algunos comentarios en el código.

ingrese la descripción de la imagen aquí

\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}

información relacionada