如何缩短 ggplot 中的 x 轴标签文本?

2023-11-24

我正在 ggplot 中绘制一个图,其中 x 轴标签包含不同蛋白质的名称,但我遇到了麻烦,因为其中一些名称太长,并且标签变得太大,以至于很难看到图。

有什么方法可以减少 x 轴标签中的字符数,而不是“打印”更大的图表?

这是一个显示我的问题的示例:

library(ggplot2)
dat <- mtcars
# Make the x-axis labels very long for this example
dat$car <- paste0(rownames(mtcars),rownames(mtcars),rownames(mtcars),rownames(mtcars))

ggplot(dat, aes (x=car,y=hp)) +
    geom_bar(stat ="identity", fill="#009E73",colour="black") +
    theme_bw() +
    theme(axis.text.x = element_text(angle = 90, hjust = 1))

enter image description here

我想将标签从这样的东西转换:

Thisisaveryveryveryloooooongprotein

To this

Thisisavery[...]   

这样我的情节就可以始终可见


Try the abbreviate功能:

qplot(Species, Sepal.Length, data=iris, geom="boxplot") +
  scale_x_discrete(label=abbreviate)

example of label abbreviation

如果默认值不适用于您的情况,您可以定义自己的函数:

qplot(Species, Sepal.Length, data=iris, geom="boxplot") +
  scale_x_discrete(label=function(x) abbreviate(x, minlength=7))

您还可以尝试旋转标签。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何缩短 ggplot 中的 x 轴标签文本? 的相关文章

随机推荐

  • 创建具有动态属性名称的对象[重复]

    这个问题在这里已经有答案了 我正在尝试这样做 var KEYS KEYS PHONE TYPE phone type KEYS AGENT TYPE agent type var myAppConfig iconMap KEYS PHONE
  • SQLAlchemy with_for_update 行锁定不起作用?

    有一个学生 他的type属性为 4 最小值为type属性可以是1 在 postgres 中 在会话 1 中 我独占锁定并更新学生表中的一行 BEGIN LOCK TABLE students IN ROW EXCLUSIVE MODE SE
  • 直接在SQLite中计算两点之间的距离

    在我的 web MySQL 应用程序中 我有类似的方法来获取两点之间的距离 6371 acos cos radians 19 83996 cos radians lat cos radians 43 94910 radians lng si
  • 如何从 preg_split 结果中删除空数组? [复制]

    这个问题在这里已经有答案了 举个例子 我有大量的正则表达式 就像我写的一样简单 php gt var dump preg split reg s reg a zA Z array 3 0 gt string 0 1 gt string 13
  • 裤子包括 OS X 特定的 Python 轮子

    TLDR Pants 获取 OS X 特定的轮子 因为我正在 Mac 上开发 我怎样才能避免这种情况 或者指定我将部署到 Ubuntu 完整故事 尝试用 Pants 打包 Python 应用程序 到目前为止进展顺利 但遇到了一个困扰我一段时
  • 以编程方式设置或查看“高级 Wifi”设置

    我需要一种以编程方式打开 高级 wifi 设置的方法 以让用户更改某些设置 或者最好以编程方式更改这些高级无线设置 到目前为止 我只能通过 startActivity new Intent Settings ACTION WIFI SETT
  • 什么样的类型定义在本地环境中是合法的?

    在伊莎贝尔的NEWS文件 我发现 命令 typedef 现在可以在本地理论上下文中工作 无需 引入对参数或假设的依赖 这不是 可以在 Isabelle Pure HOL 中实现 请注意 逻辑环境可能 包含本地 typedef 的多种解释 具
  • Kafka Connect 接收器任务忽略容差限制

    我尝试忽略接收器连接器中的错误消息errors tolerance all选项 完整的连接器配置 name crm data sink pandora config connector class io confluent connect
  • Linux下C语言读写串口

    我试图使用 FTDI 通过 USB 端口发送 接收数据 所以我需要使用 C C 处理串行通信 我正在尝试Linux 乌班图 基本上 我连接到一个正在侦听传入命令的设备 我需要发送这些命令并读取设备的响应 命令和响应都是ASCII 字符 使用
  • C++ 中的设置/获取方法

    Java 程序员和 API 似乎更喜欢显式的 set get 方法 然而我的印象是 C 社区不赞成这种做法 如果是这样 是否有特殊原因 除了更多行代码之外 为什么会这样 另一方面 为什么Java社区选择使用方法而不是直接访问 谢谢 理想情况
  • 使用 Rust 稳定通道和夜间通道并行编译代码有多困难?

    Cargo 创建的默认文件树允许并行编译发布和调试版本 因为它们位于自己的目录中 target release and target debug 分别 允许并行编译有多困难stable nightly 编译器 例如使用目录 target d
  • 在 R 中合并两个列表

    我有两个清单 first list a 1 b 2 c 3 second list a 2 b 3 c 4 我想合并这两个列表 所以最终产品是 a 1 1 2 b 1 2 3 c 1 3 4 有一个简单的函数可以做到这一点吗 如果列表始终具
  • 更新部分主键Entity Framework 4.0

    我有一个带有复合主键的表 3 列 UTP ID ITEMId UTS ID CategoryID USS ID SubCategoryID 例如 当我尝试使用 EF 4 更改 SubCategory 时 出现以下错误 utl USS ID
  • 写入帧缓冲区

    我使用的是带有内置图形加速器 GMA HD 的 i5 内核 在 RHEL 6 0 操作系统上运行 我需要测试显卡驱动程序的图形加速能力 我发现我的电脑上是i915 我使用以下代码 我从互联网上获得并进行了一些修改 来写入帧缓冲区 inclu
  • 多行搜索替换为 Perl

    我知道这类问题以前已经被问过很多次了 我再次来到这里的原因是我觉得我错过了一些简单而基本的东西 是否有可能使这种搜索替换例程变得更好 例如 无需打开同一文件两次 也欢迎与速度相关的建议 请注意 这适用于多行匹配并替换多行字符串 bin pe
  • 如何将 2D Eigen::Tensor 更改为 Eigen::Matrix

    看起来很简单 我本以为某种类型的转换是可能的 但我似乎找不到任何相关文档 虽然我在应用程序中找到了避免使用 Eigen Matrix 类的方法 但 TensorFlow 仅适用于 Eigen Tensor 而我使用的另一个库仅具有直接使用
  • Python将字符串拆分为多个字符串[重复]

    这个问题在这里已经有答案了 可能的重复 在Python中将字符串分割成列表 我有一个带有很多部分字符串的字符串 gt gt gt s str1 str2 str3 str4 现在我有一个类似以下的功能 gt gt gt def f args
  • 迁移到 rbenv 会破坏乘客 (nginx)

    我在生产服务器上从 RVM 迁移到 rbenv 我使用 rvm implode 卸载了 rvm 并安装了 rbenv ruby 1 9 2 rails passenger 和 nginx module 除了按如下方式更改 Passenger
  • 查找 numpy 数组中最接近的值

    我如何找到最接近的值在 numpy 数组中 例子 np find nearest array value import numpy as np def find nearest array value array np asarray ar
  • 如何缩短 ggplot 中的 x 轴标签文本?

    我正在 ggplot 中绘制一个图 其中 x 轴标签包含不同蛋白质的名称 但我遇到了麻烦 因为其中一些名称太长 并且标签变得太大 以至于很难看到图 有什么方法可以减少 x 轴标签中的字符数 而不是 打印 更大的图表 这是一个显示我的问题的示