<h2>Neue Antwort:</h2>
Du musst scheints einfach den x-Maßstab anpassen, dann verbreitert sich das Diagramm automatisch: <br>
`x=9mm,
%bar width =0.9 % 7mm % optional`
[![alt text][1]][1]
Ich finde das auslesen Auslesen der Zeilenanzahl usw. allerdings spaßiger....
<h2>Alte Antwort:</h2>
Das ist in der Tat ein interessanter Effekt, ob das wohl Absicht ist?
Bekanntlich lässt sich die absolute Breite des pgfplots-Graphen festlegen (`width=10cm`). <br>
Also könntest Du die
Zeilenzahl auslesen und ggf. noch einen Streckfaktor ergänzen und damit die absolute Breite des jeweiligen Graphen festlegen <br>
`\pgfplotstablegetrowsof{\jobname-data.csv}
\pgfmathsetmacro{\Breite}{1.2*(\pgfplotsretval-1)} % Zeilenzahl x Streckfaktor
% DAMIT:
\saeulendiagramm[width=\Breite cm,
%bar width=5mm, % optional
title={Neu (width=\Breite cm):}]{\jobname-data.csv}`
[![alt text][2]][3]
**Hinweise:** <br>
·Vielleicht ist es noch sinnvoll eine `height=7cm` festzulegen, für einheitliche Höhe, aber verschiedene Breite.<br>
·Soll es ganz automatisch laufen, muss ggf. etwas getan werden, dass die `\textwidth` nicht überschritten wird.
\RequirePackage{filecontents} % evtl. brauchbar
\begin{filecontents*}{\jobname-data.csv}
Nr, Name, Vorname, Stimmen
1, Name1, Vorname1, 13
2, Name2, Vorname2, 36
3, Name3, Vorname3, 15
4, Name4, Vorname4, 13
5, Name5, Vorname5, 6
6, Name6, Vorname6, 12
7, Name7, Vorname7, 25
8, Name7, Vorname7, 26
9, Name7, Vorname7, 27
10, Name7, Vorname7, 28
11, Name7, Vorname7, 29
12, Name7, Vorname7, 30
\end{filecontents*}
%\documentclass[]{article}
\documentclass[tikz]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.16}
\makeatletter
\pgfplotsset{
/pgfplots/flexible xticklabels from table/.code n args={3}{%
\pgfplotstableread[#3]{#1}\coordinate@table
\pgfplotstablegetcolumn{#2}\of{\coordinate@table}\to\pgfplots@xticklabels
\let\pgfplots@xticklabel=\pgfplots@user@ticklabel@list@x
}
}
\makeatother
\newcommand{\saeulendiagramm}[2][]{
\begin{tikzpicture}
\begin{axis}[
ybar,% ybar interval=0.7, xmin=0,
xtick=data,
ymajorgrids=true,
bar width=0.7cm,
xtick align=inside,
ylabel={Stimmen},
flexible xticklabels from table={#2}{Name}{col sep=comma},
x tick label style={font=\normalsize, rotate=45, anchor=east},
% Neu
#1,
]
%\addplot[fill=blue] table [x index=0,y index=3, col sep = comma] {#1};
\addplot+[fill=blue,
draw=red, %<----
] table[x expr=\coordindex,y index = 3, col sep=comma, columns=1, ] from {#2};
\end{axis}
\end{tikzpicture}
}
\begin{document}
\saeulendiagramm[skip coords between index={7}{999}, title=Alt:]{\jobname-data.csv}
\pgfplotstablegetrowsof{\jobname-data.csv}
\pgfmathsetmacro{\Breite}{1.2*(\pgfplotsretval-1)} % Zeilenzahl x Streckfaktor
\saeulendiagramm[width=\Breite cm,
%bar width=5mm, % optional
title={Neu (width=\Breite cm):}]{\jobname-data.csv}
\end{document}
[1]: https://texwelt.de/wissen/upfiles/55555555_352.png
[2]: https://texwelt.de/wissen/upfiles/55555555_351.png
[3]: https://texwelt.de/wissen/upfiles/55555555_351.png