Guten Tag,

ich habe eine frage bezüglich pgfplots, ich habe derzeit das Problem, dass Tikz mir zwar aus den Daten einen Plot generiert, aber in der Achsenbeschriftung nur eine, den Daten entsprechend, richtige Achsenbeschriftung generiert. Jedoch würde ich gerne diese Achsenbeschriftung abändern von Hz, wie es in der CSV Datei beschrieben wurde, in z.B. MHz, sprich die X-Achse *10^6 multiplizieren um so eine andere Achsen skalierung zu bekommen. Mit den Einheiten {700:1000 Mhz}.

Mein Datensatz schaut in dem Fall wie folgt aus:

Öffne in Overleaf
freq[Hz]    Trc1_S21[dB]    
7.000000000000000E+008  -6.559386674151164E-001 
7.015000000000000E+008  -6.399975958886607E-001 
7.030000000000000E+008  -6.360643943569261E-001 
7.045000000000000E+008  -6.431334953077439E-001 
7.060000000000000E+008  -6.307852708079281E-001 
7.075000000000000E+008  -6.339452617492234E-001

Und mein LaTEX Code wie folgt:

Öffne in Overleaf
\centering
\begin{tikzpicture}
    \begin{axis}[
        width=0.9\textwidth,
        xlabel={$Mhz$},
        ylabel={$dB$},
        enlarge x limits=0.01,
        legend entries={$S21$}]
    \addplot table [smooth] {data1.csv};
    \end{axis}
\end{tikzpicture}

Vielen Dank

gefragt 04 Apr, 09:04

dbambus's gravatar image

dbambus
161
Akzeptiert: 100%

bearbeitet 11 Apr, 16:15

esdd's gravatar image

esdd
15.1k53652

2

Willkommen auf TeXwelt! Bitte erstelle immer ein Minimalbeispiel, also ein möglichst kurzes, aber komplettes Dokument, von \documentclass{...} bis zu \end{document}, was das Problem zeigt. Das vereinfacht die Bearbeitung erheblich und ist meist eine Garantie für eine Lösung.

(04 Apr, 09:40) esdd

Umrechnen der Tickbeschriftung

Eine Möglichkeit wäre mit

Öffne in Overleaf
scaled x ticks=manual:{}{\pgfmathparse{#1/1000000}}

die Beschriftung der Ticks wie gewünscht zu skalieren. Der darzustellende Bereich lässt sich dann mit

Öffne in Overleaf
xmin=700e6,xmax=1000e6

vorgeben.

alt text

Code:

Öffne in Overleaf
\begin{filecontents*}{data1.csv}
freq[Hz]    Trc1_S21[dB]    
7.000000000000000E+008  -6.559386674151164E-001 
7.015000000000000E+008  -6.399975958886607E-001 
7.030000000000000E+008  -6.360643943569261E-001 
7.045000000000000E+008  -6.431334953077439E-001 
7.060000000000000E+008  -6.307852708079281E-001 
7.075000000000000E+008  -6.339452617492234E-001
\end{filecontents*}

\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        width=0.9\textwidth,
        xlabel={Mhz},
        scaled x ticks=manual:{}{\pgfmathparse{#1/1000000}},
        xmin=700e6,xmax=1000e6,
        ylabel={dB},
        enlarge x limits=0.01,
        legend entries={$S21$}]
    \addplot table [smooth] {data1.csv};
    \end{axis}
\end{tikzpicture}
\end{document}

Mit pgfplotstable eine neue Spalte anlegen

Lädt man pgfplotstable kann man der Tabelle eine Spalte mit den umgerechneten Werten hinzufügen. Dann muss nur noch diese beim Zeichnen des Plots für x ausgewählt werden:

Öffne in Overleaf
\begin{filecontents*}{data1.csv}
freq[Hz]    Trc1_S21[dB]    
7.000000000000000E+008  -6.559386674151164E-001 
7.015000000000000E+008  -6.399975958886607E-001 
7.030000000000000E+008  -6.360643943569261E-001 
7.045000000000000E+008  -6.431334953077439E-001 
7.060000000000000E+008  -6.307852708079281E-001 
7.075000000000000E+008  -6.339452617492234E-001
\end{filecontents*}

\documentclass[margin=5pt]{standalone}
\usepackage{pgfplotstable}% lädt auch pgfplots
\pgfplotsset{compat=1.14}

\pgfplotstableread{data1.csv}\data
\pgfplotstablecreatecol[create col/expr={\thisrow{freq[Hz]}/1000000}]{freq[MHz]}\data

\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        width=0.9\textwidth,
        xlabel={Mhz},
        xmin=700,xmax=1000,
        ylabel={dB},
        enlarge x limits=0.01,
        legend entries={$S21$}]
    \addplot table [smooth,x={freq[MHz]},y={Trc1_S21[dB]}] {\data};
    \end{axis}
\end{tikzpicture}
\end{document}

Das Ergebnis ist das gleiche wie oben.

Permanenter link

beantwortet 04 Apr, 09:39

esdd's gravatar image

esdd
15.1k53652

bearbeitet 04 Apr, 11:36

Vielen Dank :-) Das hat mir sehr geholfen

(11 Apr, 13:51) dbambus
1

Ich habe Deine "Antwort" in einen Kommentar umgewandelt. Hier sind Antworten stets "echte" Antworten. Ungewohnt und anders als in Webforen, doch innovativ und nutzbarer. Bemerkungen gern wie hier als Kommentare.

Wenn meine Antwort Dein Problem gelöst hat, kannst Du sie gern noch akzeptieren.

(11 Apr, 16:18) esdd
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×192
×16
×10
×1

Frage gestellt: 04 Apr, 09:04

Frage wurde angeschaut: 381 Mal

Zuletzt aktualisiert: 11 Apr, 16:18