Πώς να προσθέσετε μια κάθετη γραμμή σε ένα γράφημα
How Add Vertical Line Plot
Λύση:
Ένας εύκολος τρόπος για να προσθέσετε μια κάθετη γραμμή είναι με τη χρήσηΕπίλογος.
Εδώ είναι ένα παράδειγμα:
f [x_]: = (x^2 z) /((x^2 - y^2)^2 + 4 q^2 x^2) /. {y -> π/15, z -> 1, q -> π/600} ietσυχο [maxy = FindMaxValue [f [x], x]*1.1] lineStyle = {παχύ, κόκκινο, διακεκομμένο}; line1 = Γραμμή [{{π/15 + 1/50, 0}, {π/15 + 1/50, maxy}}]; line2 = Γραμμή [{{π/15 - 1/50, 0}, {π/15 - 1/50, maxy}}]; Πλοκή [{f [x], f [π/15], f [π/15]/Sqrt [2]}, {x, π/15 - 1/20, π/15 + 1/20}, PlotStyle - > {Αυτόματη, Οδηγία [lineStyle], Οδηγία [lineStyle]}, Epilog -> {Οδηγία [lineStyle], line1, line2}] 
Ανακοπή
Κατά την προσθήκη γραμμών ωςΕπίλογος (ήΤα αντικείμενα Prolog) λειτουργούν στις περισσότερες περιπτώσεις, η μέθοδος μπορεί εύκολα να αποτύχει όταν αυτοματοποιηθεί, για παράδειγμα βρίσκοντας αυτόματα το ελάχιστο και το μέγιστο του συνόλου δεδομένων. Δείτε τα παρακάτω παραδείγματα όπου λείπει η κόκκινη κάθετη γραμμή στο$ x = 5 $:
data1 = Πίνακας [0, {10}]; data2 = {1., 1., 1.1*^18, 1., 6., 1.2, 1., 1., 1., 148341.}; [email protected] {ListPlot [data1, Epilog -> {Red, [email protected] {{5, [email protected]}, {5, [email protected]}}}], ListPlot [data2, Epilog -> {Red , [email protected] {{5, [email protected]}, {5, [email protected]}}}]} 
Στην αριστερή θήκη,Ελάχιστο καιΤα μέγιστα δεδομένα αποδείχθηκαν τα ίδια, επομένως η κάθετη γραμμή δεν έχει ύψος. Για τη δεύτερη περίπτωση, Μαθηματικά αποτυγχάνει να τραβήξει τη γραμμή λόγω αυτόματης επιλογήςPlotRange (επιλογήPlotRange -> Όλες οι βοήθειες). Επιπλέον, εάν το οικόπεδο είναι μέρος μιας δυναμικής ρύθμισης και το χειρισμένο εύρος κάθετης γραφικής παράστασης, τα τελικά σημεία της γραμμής πρέπει να ενημερώνονται ανάλογα, απαιτώντας επιπλέον προσοχή.
Λύση
Αν και όλες αυτές οι περιπτώσεις μπορούν φυσικά να αντιμετωπιστούν, μια πιο βολική και ευκολότερη επιλογή θα ήταν η χρήσηΓραμμές πλέγματος:
Plot[{f[x]}, {x, π/15 - 1/20, π/15 + 1/20}, GridLines -> {{π/15 + 1/50, π/15 - 1/50}, {f[π/15], f[π/15]/Sqrt[2]}}, PlotRange -> All] 
Και για τα ακραία σύνολα δεδομένων:
[email protected] {ListPlot [data1, GridLines -> {{{5, Red}}, None}], ListPlot [data2, GridLines -> {{{5, Red}}, None}]} 
Ένας τρόπος είναι η χρήσηΓραμμές πλέγματος:
f [x_]: = (x^2 z) /((x^2 - y^2)^2 + 4 q^2 x^2) /. {y -> π/15, z -> 1, q -> π/600} Γράφημα [f [x], {x, π/15 -.1, π/15 + .1}, GridLines -> {{ Pi/15 -1/20, Pi/15 + 1/20}, {f [Pi/15], f [Pi/15]/Sqrt [2]}}, PlotRange -> All, Frame -> True, Axes -> Λάθος] 
Μπορεί να χρησιμοποιηθείΕμφάνιση, αλλάΤο Epilog είναι καλύτερο.
f [x_]: = (x^2 z) /((x^2 - y^2)^2 + 4 q^2 x^2) /. {y -> π/15, z -> 1, q -> π/600} plot = Γράφημα [{f [x], f [π/15], f [π/15]/Sqrt [2]}, {x, π/15 - .01, π/15 + .01}, PlotRange -> {{0, 0.26}, Αυτόματο}]; Εμφάνιση [plot, Graphics [{Black, Line [{{Pi/15 + 1/20, 2000}, {Pi/15 + 1/20, 9000}}]}], Graphics [{Black, Line [{{Pi /15 - 1/20, 2000}, {Pi/15 - 1/20, 9000}}]}]] 