2010-05-24 43 views
20

Trong Mathematica, làm cách nào để vẽ một đường ngang ở một số đã cho? Làm thế nào để bạn vẽ một đường thẳng đứng tại một số đã cho?Vẽ các đường ngang và dọc trong Mathematica

+8

[Bài đăng trên blog Wolfram gần đây này] (http://blog.wolfram.com/2011/08/10/mathematica-qa-combining-and-annotating-plots/) hoàn toàn trả lời câu hỏi này. –

Trả lời

9

Một cách tiếp cận sẽ có thêm Line nguyên thủy đồ họa để đồ họa của bạn:

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

enter image description here

cách tiếp cận khác sẽ trở nên vớ vẩn xung quanh với GridLines.

26

Nếu bạn đang thực sự sử dụng Plot (. Hoặc ListPlot, et c), giải pháp đơn giản nhất là sử dụng tùy chọn GridLines, cho phép bạn chỉ định x - và y -values ​​nơi bạn muốn dòng được vẽ. Ví dụ:

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

EDIT thêm:

Tất nhiên, giải pháp này hoạt động nếu bạn chỉ muốn vẽ một đường ở một số lượng nhất định duy nhất. Ví dụ, nếu bạn muốn để tạo lại ví dụ thứ hai từ dreeve's answer:

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

one line

+0

-1: điều này không cung cấp cho bạn dòng tại ** a ** số – stevenvh

16

Đối với trường hợp các đường thẳng ngang khi sử dụng Plot lừa đơn giản nhất là chỉ cần bao gồm thêm các chức năng liên tục:

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

Đối với các đường thẳng đứng, có tùy chọn Epilog cho PlotListPlot:

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

enter image description here

Nhưng có lẽ tốt nhất là tùy chọn GridLines đưa ra trong câu trả lời của Pillsy.

+1

+1: Tôi chưa bao giờ nghĩ đến hoặc đi qua đề xuất đầu tiên bạn tạo @dreeves. –

3

Sử dụng Gridlines lệnh như vậy:

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

DỊCH Trong đoạn mã trên tôi vẽ một đường cong bình thường:

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

Sau đó nói với những âm mưu gì một phần của trục x Tôi muốn hiển thị:

{x, 55, 145} 

Sau đó, tôi thêm đường lưới dọc mà tôi muốn ở 8 5 và 115.

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

Lưu ý bạn cần cung cấp {} nơi Gridlines trống để mong đợi vị trí đường lưới nằm ngang.

0

Cách khác là suy nghĩ về đường thẳng đứng dưới dạng đường thẳng của dốc vô hạn. Vì vậy, đối với một đường thẳng đứng ở tọa lạc tại x = 2 * pi, chúng ta có thể làm điều gì đó như thế này:

Plot[{Sin[x], 10^10 (x - 2 \[Pi])}, {x, 0, 10}, PlotRange -> {-1, 1}]

click to see the image

Lưu ý rằng thuật ngữ 10^10 bắt chước một dốc vô hạn. Nếu bạn không sử dụng tùy chọn PlotRange -> {-1, 1}, hàm "trội" là đường thẳng để hàm Sin [x] có hiệu quả xuất hiện dưới dạng đường ngang.

Các vấn đề liên quan