Esta es la contestación más correcta que encomtrarás compartir, sin embargo mírala pausadamente y analiza si se adapta a tu trabajo.
Solución:
Cuando quieres grados en el eje x, creo que también tiene sentido trazar usando grados. Entonces, en lugar de domain=0:2.5
y sin(deg(x))
usar domain=0:360
y sin(x)
. Cuando hagas esto, debes eliminar axis equal image
.
Habiendo hecho eso, solo necesita formatear las etiquetas. Mediante el uso xticklabel
puede establecer el formato general para las etiquetas de verificación, por lo que para agregar un signo de grado puede agregar lo siguiente a las opciones del eje:
xticklabel=$pgfmathprintnumbertick^circ$
tick
contiene el valor de x en los ticks, así que use pgfmathprintnumber
para formatear el número y agregar un signo de grado con el normal ^circ
. (Tenga en cuenta que esto es diferente de xticklabels
con un s
al final, donde escribe una lista de las etiquetas que desea).
Necesitas cambiar el xtick
ajuste que ya tiene, por supuesto, lo reemplacé con xtick distance=90
que te da un tic cada 90 grados. Si desea un tick más frecuente, debe aumentar el ancho de la trama.
Para obtener marcadores en puntos específicos, una forma es agregar un segundo gráfico adicional como este:
addplot[only marks,mark=*,samples at=0,90,...,360] sin(x);
Aquí los valores de x se expresan explícitamente con el samples at
key. Un método alternativo es utilizar el mark repeat
keyque le permite tener marcadores en cada enésimo punto de muestra:
addplot[
domain=0:360,
samples=181, % with domain=0:360 and 181 samples you get a sample every 2 degrees
mark=*,
mark repeat=45 % add a mark for every 45 sample, meaning you get a mark every 90 degreees
] sin(x) node[fill=white, right=2mm, pos=0.35]$y=sin(x)$;
Nota al margen irrelevante: al cargar pgfplots
no necesitas tikz
y pgf
además, serán cargados por pgfplots
de todas formas.
documentclass[10pt]article
usepackagepgfplots
pgfplotssetcompat=1.15
usepackagemathrsfs
usetikzlibraryarrows
pagestyleempty
begindocument
begincenter
begintikzpicture
beginaxis[
width=2.5in,
xmax=380,ymax=1.2,
axis lines=middle,
enlargelimits,
axis line style=shorten >=-0.25cm,shorten <=-0.25cm,latex-latex,
ticklabel style=fill=white,
ytick=-1,-0.5,0,0.5,1,
xlabel=$x$,
ylabel=$y$,
clip=false,
xtick distance=90,
xticklabel=$pgfmathprintnumbertick^circ$
]
addplot[
domain=0:360,
samples=181, % with domain=0:360 and 181 samples you get a sample every 2 degrees
mark=*,
mark repeat=45 % add a mark for every 45 sample, meaning you get a mark every 90 degreees
] sin(x) node[fill=white, right=2mm, pos=0.35]$y=sin(x)$;
% alternative method
%addplot[domain=0:360,mark=none,samples=100] sin(x) node[fill=white, right=2mm, pos=0.35]$y=sin(x)$;
%addplot[only marks,mark=*,samples at=0,90,...,360] sin(x);
endaxis
endtikzpicture
endcenter
enddocument
Compilar con Asíntota. asymptote.ualberta.ca
import graph;
size(10cm,5cm,false);
real sinx(real x)return sin(x);
path g=graph(sinx,0,2pi,350);
draw(g);
draw(Label("$x$",EndPoint,black),(-1,0)--(2*pi+0.5,0),blue,Arrow);
label(Label("$x'$",BeginPoint,black),(-1,0)--(2*pi+0.5,0));
draw(Label("$y$",EndPoint,black),(0,-1.5)--(0,1.5),darkgreen,Arrow);
label(Label("$y'$",BeginPoint,black),(0,-1.5)--(0,1.5));
real marginx=0.1, marginy=0.07;
for (int i: new int[]-1,1)
draw(scale(0.6)*Label("$"+(string) i+"$",Relative(0)),(0,i)-(marginx,0)--(0,i)+(marginx,0));
for (int i=0; i<=360; i=i+30) i == 360) ? blue : black);
label("$y=sin x$" +" on " + "$[0,2pi]$", (radians(130),-1.5));
Similar a @Torbjørn T. respuesta (+1):
documentclass[margin=3mm]standalone
usepackagepgfplots
pgfplotssetcompat=1.15 % recent version is 1.17
usetikzlibraryarrows.meta
begindocument
begintikzpicture
beginaxis[
x=0.25mm,
axis lines=middle,
axis line style=Latex-Latex,
xlabel=$x$, xlabel style=anchor=west,
ylabel=$y$, ylabel style=anchor=south,
%
xmin=-25, xmax=380,
ymin=-1.25, ymax=1.25,
ticklabel style = font=footnotesize,
xtick distance=30,
samples at=0,30,...,360,
smooth
]
addplot +[very thick] sin(x);
node[above right] at (30,-1) $y=sin(x)$;
endaxis
endtikzpicture
enddocument
Te mostramos comentarios y calificaciones
Puedes añadir valor a nuestro contenido informacional participando con tu experiencia en las acotaciones.