Problemas con ticklabels

Problemas con ticklabels

Voy a dibujar una función determinada de un archivo .txt. Me gustaría especificar/resaltar un punto de esa función en la función misma mediante un marcador y una etiqueta.

Además, me gustaría poner una muesca en el eje x y una etiqueta.

¿Puedes sugerir el código necesario para llevarlo a cabo?

¡¡¡Gracias!!!

Lo que sigue es el código que escribí.

\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}

Respuesta1

Una posibilidad; Para este ejemplo utilicé el siguiente archivo simple diffecorrenti.txt:

1 2
3 -3
4 5
6 7

y suprimió partes del código original que no eran relevantes para la pregunta y la solución.

ingrese la descripción de la imagen aquí

  1. Para el primer requisito, puede usar el axis cssistema de coordenadas para colocar un \nodecon algún estilo predefinido en la ubicación deseada en un punto de su gráfico. En el ejemplo hice esto de dos maneras:

    • Usando un simple \nodeen forma de círculo relleno y usé la labelllave para colocar la etiqueta.
    • Usando a \nodey a pinpara agregar la etiqueta.
  2. Para el segundo requisito, puede usar extra x ticks(y quizás también extra x tick labels) para agregar posiciones de marca adicionales y etiquetas de marca al eje x.

El código:

\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}

información relacionada