yticklabels Probleme

yticklabels Probleme

Ich werde eine bestimmte Funktion aus einer TXT-Datei zeichnen. Ich möchte einen Punkt dieser Funktion auf der Funktion selbst durch einen Marker und ein Label angeben/hervorheben.

Außerdem möchte ich auf der x-Achse eine Kerbe und eine Beschriftung anbringen.

Können Sie den zur Durchführung erforderlichen Code vorschlagen?

Danke schön!!!

Was folgt, ist der Code, den ich geschrieben habe.

\documentclass[a4paper, landscape, 8pt]{book}

\usepackage{etex}
\usepackage{etoolbox}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{microtype}

\usepackage{tikz, siunitx, pgfplots, relsize, pgfmath}
\usetikzlibrary{intersections, pgfplots.units}
\pgfplotsset{compat=newest}

\usepgfplotslibrary{units}

\begin{document}

\pgfplotsset{change x base,
            x SI prefix=milli,
            change y base,
            y SI prefix=micro
            }

\pgfplotsset{
every axis/.append style = {
font=\relsize{1},
% riguarda le tick labels
line width = 1pt,
% oppure: thin, semithick, thick,
% very thick
tick style = {line width = 1pt}
},
every axis x label/.append style = {
font = \relsize{2}
},
every axis y label/.append style = {
font = \relsize{2},
rotate = -90
%xshift = -0.7em,
%yshift = -1.4em
},
major grid style = {
line width = 0.5pt,
gray,
%dash pattern = on 4pt off 4pt
},
every axis title/.append style = {
font = \relsize{1}
},
legend style={at={(850e-3, 700e-3)},anchor=north, line width=1pt}
}

\begin{tikzpicture}
\begin{axis} 
    [   axis background/.style={fill=gray!15},
        %axis x line=bottom,
        %axis y line=left,
        xmin=-0.3, xmax=0.3,
        ymin=-0.000004, ymax=0.000004,
        x unit=V,
        %x unit prefix=m,
        y unit=A,
        %y unit prefix=u,
        minor x tick num = 1,
        minor y tick num = 1,
        width=12cm, height=9cm,
        grid=major,
        %xtick = {-0.3,-0.2,...,0.3},
        %ytick = {-0.000004,-0.000003,...,0.000004},
        xlabel = {$V_d$},
        ylabel=$I_{d_1}-I_{d_2}$
    ]
\addplot [thick, green!100] file {diffecorrenti.txt};
\end{axis}

\end{tikzpicture}

\end{document}

Antwort1

Eine Möglichkeit; für dieses Beispiel habe ich die folgende einfache Datei verwendet diffecorrenti.txt:

1 2
3 -3
4 5
6 7

und Teile des Originalcodes unterdrückt, die für die Fragestellung und die Lösung nicht relevant waren.

Bildbeschreibung hier eingeben

  1. Für die erste Anforderung können Sie das axis csKoordinatensystem verwenden, um ein Objekt \nodemit einem vordefinierten Stil an der gewünschten Stelle an einem Punkt in Ihrem Diagramm zu platzieren. Im Beispiel habe ich dies auf zwei Arten getan:

    • Verwenden Sie dazu einfach \nodedie Form eines ausgefüllten Kreises und labelplatzieren Sie mit dem Schlüssel das Etikett.
    • Verwenden Sie a \nodeund a, pinum das Etikett hinzuzufügen.
  2. Für die zweite Anforderung können Sie extra x ticks(und möglicherweise auch extra x tick labels) verwenden, um der X-Achse zusätzliche Teilstrichpositionen und Teilstrichbeschriftungen hinzuzufügen.

Der Code:

\documentclass{book}
\usepackage{pgfplots}

\pgfplotsset{compat=newest}

\tikzset{
every pin/.style={
  fill=orange!20,
  font=\footnotesize
  },
small dot/.style={
  fill=orange!70!black,
  circle,
  scale=0.5,
  }
}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
   axis background/.style={fill=gray!15},
  minor x tick num = 1,
  minor y tick num = 1,
  width=12cm, 
  height=9cm,
  grid=major,
  xlabel = {$V_d$},
  ylabel=$I_{d_1}-I_{d_2}$,
  extra x ticks={1.2,4.7},
  extra x tick labels={extra1,extra2},
  extra x tick style={
    grid=none,
    font=\footnotesize\color{red},
    tick label style={rotate=90}
  }
]
\addplot [thick, green] file {diffecorrenti.txt};
\node[small dot,label=left:{$(4,5)$}] at (axis cs:4,5) {};
\node[small dot,pin=30:{$(3,-3)$}] at (axis cs:3,-3) {};
\end{axis}
\end{tikzpicture}

\end{document}

verwandte Informationen