為什麼 pgfplots 只繪製函數直到 x = 5 和 y = 5?

為什麼 pgfplots 只繪製函數直到 x = 5 和 y = 5?

為什麼 pgfplots 僅在 x = 5 和 y = 5 之前繪製函數,而不再繪製函數?

在此輸入影像描述

\documentclass{article}

\usepackage{tikz}
\usepackage{pgfplots}

%%%<
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{tikzpicture}
\setlength\PreviewBorder{5pt}
%%%>

\begin{document}
\begin{tikzpicture}
\begin{axis}[samples=100,ymin=0,ymax=10,xmin=0,xmax=20]

\addplot [thick] plot  (\x,  {1/(1 + exp(-0.6*(\x - 12)))});
\addplot plot (\x, {\x});

\end{axis}
\end{tikzpicture}
\end{document}

答案1

中有很多“域”選項pgfplots。您要問的問題很簡單,它指定了繪圖中使用domain的值x(如果您使用的是反斜杠,則不需要反斜杠);pgfplots預設情況下,我們有domain = -5:5,這顯然是作者認為對於典型圖表來說是合理的。有一個對應y domain的二變量函數。

xmin這個域與和建立的限制有很大不同xmax。雖然domain是按圖設定的,但這些鍵是按軸設定的,僅限制實際的繪畫到這些限制。對應的還有yminymax。如果沒有給出,這些將自動計算pgfplots,但對於真正精美的圖片來說,需要自己設定它們。請注意,確實y domain如此不是與一變數函數圖中的ymin和相關,因為它決定了不存在的變數 的輸入。相反,和,如果它們是自動確定的,將根據您在 上繪製的函數輸出的值來計算。ymaxyyminymaxdomain

還有更多!我最喜歡的是restrict x to domainrestrict y to domain,它們是與 具有相同輸入語法的過濾器domain。這些並不能確定變數中使用哪些數字;他們決定圖中使用什麼值。它們對於參數化或不可控的功能非常有幫助;即\addplot {1/x};,使用預設值 時domain = -5:5,將在 處 產生相當醜陋的漸近線x = 0以及(使用預設值yminymax)嚴重扭曲的軸視圖。但在此圖中的設定restrict y to domain = -5:5將簡單地消除大值,刪除漸近線並將圖片放回比例方塊。

或者,也可以使用參數圖\addplot ({exp(x)},{exp(-x)});(一種僅在第一象限中繪製相同事物的有趣方式),由於圖上的值與變數值之間存在對數關係,因此很難直接調整。對於這一點,預設值domain和預設軸大小都是不合適的;我通常保持domain原樣(這給出了兩個坐標中太大的數字),然後設置restrict x to domainrestrict y to domain很好地修剪圖片。這並不是說這是一個好主意完全地忽視domain,因為這些點計算過...只是沒有使用。

這些過濾器鍵與最小和最大鍵不同,因為它們實際上忽略了過濾掉的值,而不是簡單地將它們從圖片中刪除。如果這些值大於 TeX 的運算能力,這一點至關重要。

最後,有samplessample at,後者與domain並表示有多少個,甚至確切地在 的哪個值處x計算值。restrict to domain如果您仔細選擇樣本以避免異常輸入,這可以作為密鑰的替代方案。它們對於調整圖表中快速變化的位置的繪圖也很有用,否則這些位置看起來會相當不穩定。這些也與restrict to domain按鍵交互,從某種意義上說,

\addplot[
  domain = -5:5,
  samples = 11,
  restrict x to domain = -1:1,
  restrict y to domain = -1:1
] ({exp(x)},{exp(-x)});

將精確評估 11 個點,即({exp(-5)},{exp(5)})通過,但只會繪製({exp(5)},{exp(-5)})兩個座標都在區間內的點。[-1,1]不幸的是,該屬性的唯一一點是({exp(0)},{exp(0)}) = (1,1),所以你的地塊將相當空置。 未繪製的點甚至不用於錨定插值曲線! 所以過濾鍵並不是萬能的。

我的照片傾向於設置全部這些鍵的不同之處,因為它們各自對繪圖的影響不同。

相關內容