romanrt
29-09-2011, 22:18
Hallo zusammen,
ich habe durch datamining unter anderem eine Tabelle erstellt aus welcher ich nun zwei Spalten verwenden möchte. Diese beiden Spalten sollen (vielleicht) in einem Balkendiagramm dargestellt werden. Spalte A beinhaltet den Namen der Variablen, Spalte B deren Wert. Die Variablen sollen nach Wert geordnet werden (sind sie sowieso schon in der original Tabelle),
Das Problem bei der Angelengeheit ist, dass pgfplot bisher immer nur Zahlen auf der x-Achse wollte, jetzt allerdings eine Möglichkeit hat dort auch "Wörter" zu verwenden. Allerdings geht das, soweit ich das sehe, nur wenn man diese Wörter auch vorher in Latex reinschreibt. Dabei geht dann natürlich der Vorteil vom Tabellenimport flöten.
Gibt es eine Möglichkeit die symbolic x coords aus der Tabelle (Spaltenindex 0) einzulesen?
Compiler ist pdflatex.
Minimalbeispiel:
\documentclass[
DIV12,
a4paper,
pagesize,
english,
11pt,
headings=small
]{scrartcl}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{patterns}
\usetikzlibrary{plotmarks}
\usetikzlibrary{fit}
\pgfplotsset{compat=1.3}
\begin{document}
\section{Tut!}
\pgfplotstableread[col sep=semicolon]{asdf.csv.txt}\datatable
\begin{tikzpicture}
\begin{axis}[symbolic x coords={asdf, asd, fdas, ss, fdsa, qwer, zkj, adsfq, ziu, hj}]
\addplot+[%
ybar,
fill=black!60, %
mark=none, %
] %
coordinates{
(asdf,3)
(asd,4)
(fdas,7)
(ss,2)
(fdsa,8)
(qwer,8)
(zkj,7)
(adsfq,7)
(ziu,8)
(hj,9)
};
\end{axis}
\end{tikzpicture}
\section{Tut nicht!}
\pgfplotstableread[col sep=semicolon]{asdf.csv.txt}\datatable
\begin{tikzpicture}
\begin{axis}[symbolic x coords={table[y index = 1] from \datatable}]
\addplot+[%
ybar,
fill=red!60, %
mark=none, %
] %
table[y index = 1] from \datatable ;
\end{axis}
\end{tikzpicture}
\end{document}
ich habe durch datamining unter anderem eine Tabelle erstellt aus welcher ich nun zwei Spalten verwenden möchte. Diese beiden Spalten sollen (vielleicht) in einem Balkendiagramm dargestellt werden. Spalte A beinhaltet den Namen der Variablen, Spalte B deren Wert. Die Variablen sollen nach Wert geordnet werden (sind sie sowieso schon in der original Tabelle),
Das Problem bei der Angelengeheit ist, dass pgfplot bisher immer nur Zahlen auf der x-Achse wollte, jetzt allerdings eine Möglichkeit hat dort auch "Wörter" zu verwenden. Allerdings geht das, soweit ich das sehe, nur wenn man diese Wörter auch vorher in Latex reinschreibt. Dabei geht dann natürlich der Vorteil vom Tabellenimport flöten.
Gibt es eine Möglichkeit die symbolic x coords aus der Tabelle (Spaltenindex 0) einzulesen?
Compiler ist pdflatex.
Minimalbeispiel:
\documentclass[
DIV12,
a4paper,
pagesize,
english,
11pt,
headings=small
]{scrartcl}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{patterns}
\usetikzlibrary{plotmarks}
\usetikzlibrary{fit}
\pgfplotsset{compat=1.3}
\begin{document}
\section{Tut!}
\pgfplotstableread[col sep=semicolon]{asdf.csv.txt}\datatable
\begin{tikzpicture}
\begin{axis}[symbolic x coords={asdf, asd, fdas, ss, fdsa, qwer, zkj, adsfq, ziu, hj}]
\addplot+[%
ybar,
fill=black!60, %
mark=none, %
] %
coordinates{
(asdf,3)
(asd,4)
(fdas,7)
(ss,2)
(fdsa,8)
(qwer,8)
(zkj,7)
(adsfq,7)
(ziu,8)
(hj,9)
};
\end{axis}
\end{tikzpicture}
\section{Tut nicht!}
\pgfplotstableread[col sep=semicolon]{asdf.csv.txt}\datatable
\begin{tikzpicture}
\begin{axis}[symbolic x coords={table[y index = 1] from \datatable}]
\addplot+[%
ybar,
fill=red!60, %
mark=none, %
] %
table[y index = 1] from \datatable ;
\end{axis}
\end{tikzpicture}
\end{document}