PgfPlots дублирует метки оси x

PgfPlots дублирует метки оси x

У меня есть повторяющиеся числа на оси X. Вот мой код-

\begin{tikzpicture}
    \pgfplotstableread{Figures/measurements.dat}
    \datatable
    \begin{axis}[symbolic x coords={1.2.1.a,1.2.3.b,1.1.3.c,1.1.1.d,1.3.1.e,1.3.3.f,3.3.3.g,1.3.3.h,1.1.3.i,1.1.1.j,1.2.1.k,1.3.1.l},
    x tick label style={rotate=90,anchor=east},
    grid=major,
    xlabel=Processor Configuration,
    ylabel=Clock Cycles,
    legend pos=outer north east,
    legend columns=1,
    cycle list name=exotic,
    %xtick=data,
    xticklabels={1.2.1,1.2.3,1.1.3,1.1.1,1.3.1,1.3.3,3.3.3,1.3.3,1.1.3,1.1.1,1.2.1,1.3.1},
    x label style={at={(0.5,-0.1)}},
    ]   
    \addplot table[y=App_Stop] from \datatable ;
    \addlegendentry{App Stop};
\end{axis}
\end{tikzpicture}

А вот мой файл данных -

Proc_config App_Stop
1.2.1.a     138 
1.2.3.b     923
1.1.3.c     1708
1.1.1.d     923
1.3.1.e     138
1.3.3.f     923
3.3.3.g     923
1.3.3.h     1427
1.1.3.i     923
1.1.1.j     923
1.2.1.k     138
1.3.1.l     923

Теперь вы можете видеть, что у меня есть 2 записи, например, для 1.2.1, переименованные в 1.2.1.a и 1.2.1.k. Поэтому, чтобы избежать этих a, b, c..., l в метках делений оси x, я добавил команду xticklabels=в код. Однако она не отображает все добавленные мной метки. Однако, если я закомментирую эту строку и раскомментирую строку xtick=data, я получу правильный вывод, однако в нем будут все суффиксы a, b, c... l для каждой записи. Как мне обойти эту ситуацию?

решение1

Это дает желаемый результат:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}

\begin{tikzpicture}
    \pgfplotstableread{data.dat}
    \datatable
    \begin{axis}[symbolic x coords={1.2.1.a,1.2.3.b,1.1.3.c,1.1.1.d,1.3.1.e,1.3.3.f,3.3.3.g,1.3.3.h,1.1.3.i,1.1.1.j,1.2.1.k,1.3.1.l},
    x tick label style={rotate=90,anchor=east},
    grid=major,
    xlabel=Processor Configuration,
    ylabel=Clock Cycles,
    legend pos=outer north east,
    legend columns=1,
    cycle list name=exotic,
    xtick=data,
    xticklabels={1.2.1,1.2.3,1.1.3,1.1.1,1.3.1,1.3.3,3.3.3,1.3.3,1.1.3,1.1.1,1.2.1,1.3.1},
    x label style={at={(0.5,-0.1)}},
    ]   
    \addplot table[y=App_Stop] from \datatable ;
    \addlegendentry{App Stop};
\end{axis}
\end{tikzpicture}

\end{document}

введите описание изображения здесь

Связанный контент