在 R 中使用 hclust 时 Show(plot(hc)) returns NULL
Show(plot(hc)) returns NULL when using hclust in R
我正在使用 VSCode 并且我正在尝试可视化 hclust() 生成的树状图。我的数据集 (baseMini) 由二维向量组成,到目前为止,这是我所做的:
dd <- dist(x = baseMini, method = "euclidean")
hc <- hclust(d = dd, method = "complete")
plot_hc <- plot(x = hc)
我确认dd是一个距离矩阵,它看起来像这样:
1 2 3 3000 3001 3002
2 1.6710624
3 0.9892719 2.0635176
3000 6.4243003 7.9459624 5.9004292
3001 6.3986419 7.9904130 5.9925833 0.8342891
3002 7.6690587 8.9921632 6.9431019 2.1140049 2.8991615
6001 7.5003784 5.9874636 7.3277637 12.6488917 12.9759681 12.8943846
然后,尝试检查 hc 我得到这样的结果(我真的不知道 hclust() 输出会发生什么):
> hc
Call:
hclust(d = dd, method = "complete")
Cluster method : complete
Distance : euclidean
Number of objects: 7
但是,当我想用 show(plot_hc) 显示情节时,甚至只是请求 plot_hc 时,我得到一个 NULL 输出。我到处寻找他们总是使用这些相同的步骤,从不提及任何特定的图书馆或其他任何东西。我错过了什么,为什么 VSCode/R 无法识别情节?
附加信息:
我试着用 plot.hclust(hc) 询问,但我发现没有函数“plot.hclust”。
另一件事可能是在文件的开头我使用了库 (ggplot),但我不知道它是否会以某种方式干扰 plot()。另外,也许错误在于我准备数据集的方式,但它看起来很标准:
> baseMini
X1 X2
1 2.1135390 0.3644160
2 0.4427359 0.3938498
3 2.2764659 1.3401791
3000 7.8718230 3.2128892
3001 8.1685351 2.4331455
3002 7.9622546 5.3249591
6001 -4.7765455 3.3279293
非常感谢任何帮助。
这也难倒了我。它是一个 hclust
对象不是问题,而是 plot()
函数的工作方式。 ggplot()
输出很好地保存到您的环境中,但它对 plot()
的效果不同。我看到一些建议使用 recordPlot()
的方法。 可以提供更多细节和另一种方法。祝你好运。
# these steps don't work
doesnt_work <- plot(1:3, 1:3)
doesnt_work
#> NULL
# but these steps do
plot(1:3, 1:3) # make plot
p <- recordPlot() # assign existing plot outputoutput
plot.new() # clean up device
p # redraw
我正在使用 VSCode 并且我正在尝试可视化 hclust() 生成的树状图。我的数据集 (baseMini) 由二维向量组成,到目前为止,这是我所做的:
dd <- dist(x = baseMini, method = "euclidean")
hc <- hclust(d = dd, method = "complete")
plot_hc <- plot(x = hc)
我确认dd是一个距离矩阵,它看起来像这样:
1 2 3 3000 3001 3002
2 1.6710624
3 0.9892719 2.0635176
3000 6.4243003 7.9459624 5.9004292
3001 6.3986419 7.9904130 5.9925833 0.8342891
3002 7.6690587 8.9921632 6.9431019 2.1140049 2.8991615
6001 7.5003784 5.9874636 7.3277637 12.6488917 12.9759681 12.8943846
然后,尝试检查 hc 我得到这样的结果(我真的不知道 hclust() 输出会发生什么):
> hc
Call:
hclust(d = dd, method = "complete")
Cluster method : complete
Distance : euclidean
Number of objects: 7
但是,当我想用 show(plot_hc) 显示情节时,甚至只是请求 plot_hc 时,我得到一个 NULL 输出。我到处寻找他们总是使用这些相同的步骤,从不提及任何特定的图书馆或其他任何东西。我错过了什么,为什么 VSCode/R 无法识别情节?
附加信息: 我试着用 plot.hclust(hc) 询问,但我发现没有函数“plot.hclust”。 另一件事可能是在文件的开头我使用了库 (ggplot),但我不知道它是否会以某种方式干扰 plot()。另外,也许错误在于我准备数据集的方式,但它看起来很标准:
> baseMini
X1 X2
1 2.1135390 0.3644160
2 0.4427359 0.3938498
3 2.2764659 1.3401791
3000 7.8718230 3.2128892
3001 8.1685351 2.4331455
3002 7.9622546 5.3249591
6001 -4.7765455 3.3279293
非常感谢任何帮助。
这也难倒了我。它是一个 hclust
对象不是问题,而是 plot()
函数的工作方式。 ggplot()
输出很好地保存到您的环境中,但它对 plot()
的效果不同。我看到一些建议使用 recordPlot()
的方法。
# these steps don't work
doesnt_work <- plot(1:3, 1:3)
doesnt_work
#> NULL
# but these steps do
plot(1:3, 1:3) # make plot
p <- recordPlot() # assign existing plot outputoutput
plot.new() # clean up device
p # redraw