R 中带标签的水平树状图

2024-01-09

我正在尝试从hclust函数输出。我希望树状图是水平排列的,而不是默认的,可以通过(例如)获得

require(graphics)
hc <- hclust(dist(USArrests), "ave")
plot(hc)

我尝试使用as.dendrogram()功能类似于plot(as.dendrogram(hc.poi),horiz=TRUE)但结果是没有有意义的标签:

如果我使用plot(hc.poi,labels=c(...))这是没有as.dendrogram(),我可以通过labels=争论,但现在树状图是垂直的而不是水平的。有没有办法同时水平排列树状图并分配用户指定的标签?谢谢!

Update:作为 USArrests 数据集的示例,假设我想使用州名前两个字母的缩写作为标签,这样我想以某种方式通过labs进入绘图函数:

labs = substr(rownames(USArrests),1,2)

这使

 [1] "Al" "Al" "Ar" "Ar" "Ca" "Co" "Co" "De" "Fl" "Ge" "Ha"
[12] "Id" "Il" "In" "Io" "Ka" "Ke" "Lo" "Ma" "Ma" "Ma" "Mi"
[23] "Mi" "Mi" "Mi" "Mo" "Ne" "Ne" "Ne" "Ne" "Ne" "Ne" "No"
[34] "No" "Oh" "Ok" "Or" "Pe" "Rh" "So" "So" "Te" "Te" "Ut"
[45] "Ve" "Vi" "Wa" "We" "Wi" "Wy"

要在水平树状图中显示定义的标签,一种解决方案是将数据框的行名称设置为新标签(所有标签应该是唯一的)。

require(graphics)
labs = paste("sta_",1:50,sep="") #new labels
USArrests2<-USArrests #new data frame (just to keep original unchanged)
rownames(USArrests2)<-labs #set new row names
hc <- hclust(dist(USArrests2), "ave")
par(mar=c(3,1,1,5)) 
plot(as.dendrogram(hc),horiz=T)

编辑 - 使用 ggplot2 的解决方案

labs = paste("sta_",1:50,sep="") #new labels
rownames(USArrests)<-labs #set new row names
hc <- hclust(dist(USArrests), "ave")

library(ggplot2)
library(ggdendro)

#convert cluster object to use with ggplot
dendr <- dendro_data(hc, type="rectangle") 

#your own labels (now rownames) are supplied in geom_text() and label=label
ggplot() + 
  geom_segment(data=segment(dendr), aes(x=x, y=y, xend=xend, yend=yend)) + 
  geom_text(data=label(dendr), aes(x=x, y=y, label=label, hjust=0), size=3) +
  coord_flip() + scale_y_reverse(expand=c(0.2, 0)) + 
  theme(axis.line.y=element_blank(),
        axis.ticks.y=element_blank(),
        axis.text.y=element_blank(),
        axis.title.y=element_blank(),
        panel.background=element_rect(fill="white"),
        panel.grid=element_blank())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 中带标签的水平树状图 的相关文章

随机推荐

  • airflow.exceptions.AirflowException:在 DAG 中检测到循环。任务错误

    我正在运行气流管道 但代码看起来不错 但实际上我收到了airflow exceptions AirflowException 在 DAG 中检测到循环 错误任务 你能帮忙解决这个问题吗 发生这种情况的原因是多个任务中有重复的 task id
  • C语言中如何将线程分配给不同的核心?

    我创建了一个程序 使用 4 个线程对 8 个数字进行加法 然后计算结果的乘积 如何确保每个线程使用单独的核心以获得最大性能提升 我是 pthreads 新手 所以我真的不知道如何正确使用它 请提供尽可能简单的答案 My code inclu
  • 如何获取我的表单父级窗口的当前标题?

    我有一个 WinForm 应用程序 它是其他进程 例如 Google Chrome 的 Windows 的父级 我使用以下代码将 Windows 设为我的表单的父级 使用返回的句柄 Process MainWindowHandle 我正在努
  • Winforms UI 单元测试

    我正在为我的用户控件编写一个测试用例 它将提示使用 MessageBox Show 进行用户操作 要求处理或取消操作 我如何设计我的单元测试来模仿用户交互以继续 我不想重构以将逻辑移至中间层 这是获得用户同意并继续进行中间层调用的简单案例
  • 将 UTF-8 编码的字符串插入 UTF-8 编码的 mysql 表失败​​,并显示“字符串值不正确”

    将 UTF 8 编码字符串插入 UTF 8 编码表会给出不正确的字符串值 PDOException SQLSTATE HY000 一般错误 1366 不正确的字符串值 xF0 x9D x84 x8E i 对于第 1 行的列 body val
  • 如何使用 python 检查 YouTube 视频是否存在?

    我有一个简单的函数 用于检查网站是否存在 def try site url request requests get url return request status code 200 问题是 对于没有视频的 YouTube 网址 仍然存
  • 让特定的插座离开房间所在的位置

    我正在尝试取消订阅套接字并使其离开他所在的房间 我知道他的socket id 为了让您更好地理解 当房间的创建者离开时 特定套接字 所有套接字应该离开 泰 要离开房间 您可以使用以下命令 socket leave roomName 如果你只
  • RSpec:如何设置控制器的实例变量

    我的 Rails 控制器中有一个这个方法 def some init func inst var 1 end 以及稍后 do something with inst var 如何在 RSpec 中设置此实例变量 allow controll
  • Django 和 ReactJS 没有渲染模板

    已经 24 小时了 仍然无法弄清楚 当我在浏览器中浏览 127 0 0 1 8000 或 localhost 8000 时 模板没有被渲染 我使用 React js 作为前端配置了它 请参阅图片中的路径 我正在我的视图中打印 它显示在我的终
  • 使用 wget 或 curl 从 Jenkins 下载工件

    我正在尝试使用 DOS 批处理脚本从 Jenkins 项目下载工件 这不仅仅是微不足道的原因是我的工件是一个 ZIP 文件 其名称中包含 Jenkins 内部版本号 因此我不知道确切的文件名 我当前的攻击计划是使用 wget 指向 last
  • 如何在单个 y 刻度上绘制散点图

    我只是想知道是否有任何 python 包可用于在单轴上绘制散点图 我对新想法和方法持开放态度 并希望在开始之前进行一些尝试 是否可以用Python绘制上面的图 如果是的话 哪个包将用于绘制上面的图 有人能解释一下用 Python 绘制上面的
  • 动画 UILabel 字体大小变化

    我目前正在制作一个使用自定义视图控制器容器的应用程序 屏幕上同时显示多个视图 当点击其中一个视图时 所选视图控制器会动画化为全屏 这样做时 选定的视图控制器子视图也会缩放 框架 字体大小等 不过 UILabel 的字体属性不可设置动画 从而
  • 无法在 R 中安装 GSIF 包

    我尝试通过以下代码安装 GSIF 包 install packages GSIF repos c http R Forge R project org type source dependencies TRUE 出现以下错误信息 Warni
  • Postgresql 合并具有相同键(hstore 或 json)的行

    我有一个这样的表 ID Attribute 1 color gt red 1 color gt green 1 shape gt square 2 color gt blue
  • 在 Visual Studio Code 中禁用特定文件的语法突出显示

    我在用视觉工作室代码用类似于 javascript json 的句子和英语单词进行注释 我选择了Select Language Mode价值Javascript 现在 我想禁用该文件上的所有语法突出显示 我怎样才能实现它 在 vscode
  • iOS 10/11 UICollectionViewFlowLayout 使用 UICollectionViewFlowLayoutAutomaticSize 导致页脚补充视图未对齐

    所以这是我们发现的一个有趣的问题UICollectionViewFlowLayout在 iOS 10 上 在 11 上仍然是一个问题 并使用UICollectionViewFlowLayoutAutomaticSize为估计的ItemSiz
  • Cors、Web Api、IE8、发布复杂数据

    作为我工作环境的一部分 我们需要支持 IE8 但希望推进技术 特别是 CORS 我在将复杂对象发布到 ie8 中的 cors 服务时遇到问题 该对象为空 以下是重现的步骤 如果需要的话我可以将项目上传到github 我创建了一个新的 mvc
  • 如何使用 Selenium 和 Python 将 DELETE 击键发送到文本字段?

    如何使用 Selenium Web 测试器将 Keys DELETE 击键发送到文本字段 我试图模拟用户在字段中键入 然后删除他们键入的内容以测试交互式自动建议功能 它应该将列表过滤为以查询开头的项目 然后在他们删除查询时再次显示所有可能的
  • Linux:删除多个文件的文件扩展名

    我有许多扩展名为 txt 的文件 如何在Linux中删除多个文件的 txt扩展名 我找到 rename old new old 替代品 old延伸至 new 我也想对子文件夹中的文件执行此操作 rename有点危险 因为根据其手册页 htt
  • R 中带标签的水平树状图

    我正在尝试从hclust函数输出 我希望树状图是水平排列的 而不是默认的 可以通过 例如 获得 require graphics hc lt hclust dist USArrests ave plot hc 我尝试使用as dendrog