[英]R lattice 3d plot: ticks disappear when changing panel border thickness
以下使用cloud
代碼生成帶有刻度標記的圖表:
require(lattice)
cloud(Sepal.Length ~ Petal.Length * Petal.Width, data = iris,
scales = list(arrows=F))
當使用axis.line
參數中的par.setting
更改面板邊框粗細時,邊框粗細會發生變化,但是刻度標記會消失,無論是否在scales
內調用tck
參數:
cloud(Sepal.Length ~ Petal.Length * Petal.Width, data = iris,
scales = list(arrows=F, tck=1),
par.settings = list(
axis.line = list(lwd = 0.5)))
這似乎與其他3d功能一起發生,例如wireframe
。 有沒有我忽略的東西,我怎么能解決這個問題? 非常感謝您的幫助。
蜱似乎消失的原因是因為晶格基於axis.line參數的厚度。
cloud(Sepal.Length ~ Petal.Length * Petal.Width, data = iris,
scales = list(arrows=F, tck=c(3), draw = TRUE),
par.settings = list(axis.line = list(lwd = 0.5))
)
在上面的例子中,我將tck參數更改為3,但是將lwd參數保持為0.5你可以看到R已經推出了刻度標簽 - 所以它們仍然被渲染但看起來不可見。
現在,如果您運行:
cloud(Sepal.Length ~ Petal.Length * Petal.Width, data = iris,
scales = list(arrows=F, tck=c(3), draw = TRUE),
par.settings = list(axis.line = list(lwd = 2))
)
你看到刻度線仍然存在,但是正在以與axis.line參數的比例繪制,所以真的 - 下一個問題是:你實際上試圖通過傳遞axis.line = list(lwd = 0.5)來完成什么?
我認為這是代碼中的一個錯誤。 如果更改距離參數以使標記更長,然后還嘗試使標記更粗,則會導致不同的線型而不是更粗的標記:
cloud(Sepal.Length ~ Petal.Length * Petal.Width, data = iris,
scales = list(arrows=F, distance=c(2), draw = TRUE),
par.settings = list(axis.line = list(lwd = 3)) # Dashed lines instead of thicker
)
所以在par-channels上似乎有一些“串擾”。 此外,如果使用lty
參數,則可以獲得所需的刻度寬度更改:
cloud(Sepal.Length ~ Petal.Length * Petal.Width, data = iris,
scales = list(arrows=F, distance=c(2), draw = TRUE),
par.settings = list(axis.line = list(lty = 0.5)) # Success
)
我猜這也會影響線框功能,因為它們的核心非常相似,只是具有不同的面板功能。 (這是在Mac上運行R 2.15.3和格子0.20-15以及R 3.0.2 /格子0.20-24。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.