web-dev-qa-db-fra.com

Tracé de lignes horizontales et verticales dans Mathematica

Dans Mathematica, comment tracez-vous une ligne horizontale à un nombre donné? Comment tracez-vous une ligne verticale à un nombre donné?

20
karlsbad

Si vous utilisez réellement Plot (ou ListPlot , et c.), La solution la plus simple consiste à utiliser l'option GridLines , qui vous permet de spécifier le x - et y- valeurs où vous voulez que les lignes soient tracées. Par exemple:

Plot[Sin[x], {x, 0, 2 \[Pi]},
  GridLines -> {{0, \[Pi]/2, \[Pi], 3 \[Pi]/2, 2 \[Pi]},
                {-1, -Sqrt[3]/2, -1/2, 0, 1/2, Sqrt[3]/2, 1}}]

many lines

ÉDITE pour ajouter: 

Bien sûr, cette solution fonctionne si vous voulez simplement tracer une ligne avec un seul numéro donné. Par exemple, si vous souhaitez reproduire le deuxième exemple à partir de dreeve's answer :

Plot[Sin[x], {x, 0, 2 Pi},
 GridLines -> {{4}, {}}]

one line

26
Pillsy

Dans le cas de lignes horizontales lorsque vous utilisez Plot, le plus simple consiste à inclure uniquement des fonctions constantes supplémentaires:

Plot[{Sin[x], .75}, {x, 0, 2Pi}]

Pour les lignes verticales, il existe l'option Epilog pour Plot et ListPlot:

Plot[Sin[x], {x, 0, 2Pi}, Epilog->Line[{{4,-100}, {4,100}}]]

enter image description here

Mais le meilleur est probablement l'option GridLines donnée dans la réponse de Pillsy.

16
dreeves

Une approche consiste à ajouter des primitives graphiques Line à vos graphiques:

p1 = Plot[Sin[x], {x, -2*Pi,2*Pi}];
l1 = Graphics@Line[{{-2Pi,.75},{2Pi,.75}}]; (* horizontal line at y==.75 *)
Show[p1,l1]

enter image description here

Une autre approche serait de bricoler GridLines.

9

Utilisez la commande Gridlines comme ceci: 

Plot[
  1/(15*E^((x - 100)^2/450)*Sqrt[2*Pi]),
  {x, 55, 145},
  GridLines -> {{85, 115}, {}}
]

TRANSLATIONDans le code ci-dessus, je trace une courbe normale:

1/(15*E^((x - 100)^2/450)*Sqrt[2*Pi]) 

Indiquez ensuite au graphique quelle partie de l'axe des x je veux qu'elle affiche:

{x, 55, 145}

Ensuite, j'ajoute les lignes de la grille verticale où je les veux à 85 et 115.

GridLines -> {{85, 115}, {}}

Notez que vous devez fournir le champ vide {} où Gridlines s'attendrait aux emplacements des lignes de grille horizontales.

3
politicalEconomist