TeXwelt wurde neu installiert. Es funktionieren noch nicht alle Features und auch an den deutschsprachigen Formulierungen wird verbessert. Danke für eure Geduld.

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 '17, 15:04

dbambus's gravatar image

dbambus
1612
Akzeptiert-Rate: 0%

bearbeitet 11 Apr '17, 22:15

esdd's gravatar image

esdd
15.2k123954

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 '17, 15: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 '17, 15:39

esdd's gravatar image

esdd
15.2k123954
Akzeptiert-Rate: 63%

bearbeitet 04 Apr '17, 17:36

Vielen Dank :-) Das hat mir sehr geholfen

(11 Apr '17, 19: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 '17, 22:18) esdd
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×273
×17
×13
×1

gestellte Frage: 04 Apr '17, 15:04

Frage wurde gesehen: 2,509 Mal

zuletzt geändert: 11 Apr '17, 22:18