在ggplot2中创建部分虚线

2024-05-29

我正在 R 中创建一个图,并且需要创建一条线,其中某些值是投影。投影用虚线表示。这是代码:

df = data.frame(date=c(rep(2008:2013, by=1)),
                value=c(303,407,538,696,881,1094))


ggplot(df, aes(date, value, width=0.64)) + 
        geom_bar(stat = "identity", fill="#336699", colour="black") +
        ylim(c(0,1400)) + opts(title="U.S. Smartphone Users") +
        opts(axis.text.y=theme_text(family="sans", face="bold")) +
        opts(axis.text.x=theme_text(family="sans", face="bold")) +
        opts(plot.title = theme_text(size=14, face="bold")) +
        xlab("Year") + ylab("Users (in millions)") +        
        opts(axis.title.x=theme_text(family="sans")) +
        opts(axis.title.y=theme_text(family="sans", angle=90)) +
        geom_segment(aes(x=2007.6, xend=2013, y=550, yend=1350), arrow=arrow(length=unit(0.4,"cm")))

因此,我创建了一条从 2008 年延伸到 2013 年的线。但是,我想要一条从 2008 年到 2011 年的实线,以及一条从 2011 年到末尾的虚线。我是否只做两个单独的线段,或者是否有一个单独的命令我可以用来获得所需的结果。


The ggplot哲学很简单。绘图的每个元素都需要位于不同的图层上。因此,要获得不同线型的两条线段,您需要两个geom_segment声明。

我用以下例子说明了同样的原理geom_bar适合不同时期的不同颜色。

ggplot(df[df$date<=2011, ], aes(date, value, width=0.64)) + 
    geom_bar(stat = "identity", fill="#336699", colour="black") +
    geom_bar(data=df[df$date>2011, ], aes(date, value),  
        stat = "identity", fill="#336699", colour="black", alpha=0.5) +
    ylim(c(0,1400)) + opts(title="U.S. Smartphone Users") +
    opts(
        axis.text.y=theme_text(family="sans", face="bold"), 
        axis.text.x=theme_text(family="sans", face="bold"), 
        plot.title = theme_text(size=14, face="bold"), 
        axis.title.x=theme_text(family="sans"), 
        axis.title.y=theme_text(family="sans", angle=90)
    ) +
    xlab("Year") + ylab("Users (in millions)") +        
    geom_segment(aes(x=2007.6, xend=2011, y=550, yend=1050), linetype=1) + 
    geom_segment(aes(x=2011, xend=2013, y=1050, yend=1350), 
        arrow=arrow(length=unit(0.4,"cm")), linetype=2) 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在ggplot2中创建部分虚线 的相关文章

  • R 在列中按分隔符分割字符串

    我有一个包含几行的文件 例如 A B C awer ttp net Code 554 abcd ttp net Code 747 asdf ttp net Part 554 xyz ttp net Part 747 我想使用 R 仅拆分表的
  • 在 RStudio 中自动格式化 R 代码

    RStudio 中是否有自动格式化代码的可能性 I found this https stackoverflow com questions 3017877 tool to auto format r code 但未与RStudio连接 还
  • 照片与 r 中的图形对齐

    首先我想我需要在powerpoint中手动完成它 然后我想如果有解决方案的话可以尝试使用R 这是我的示例数据 set seed 123 myd lt expand grid cat LETTERS 1 5 cond c F T phase
  • 将嵌套 for 循环转换为 R 中的并行循环

    下面您可以在 R 中找到一段代码 我想将其转换为使用多个 CPU 作为并行进程运行 我尝试使用foreach包 但并没有走得太远 考虑到我有 3 级嵌套循环 我找不到一个很好的例子如何让它工作 我们将非常感谢您的帮助 下面的代码示例 我做了
  • R:根据排名重新排列数据框的列

    我有以下数据框 df1 Type CA AR OR alpha 2 3 5 beta 1 5 6 gamma 6 2 8 delta 8 1 9 Total 17 11 28 我想根据 总计 行重新排序该数据框 使其按降序排列 生成的数据框
  • 从数据框中提取具有最高值和最低值的行

    我对 R 还很陌生 我主要用它来可视化统计数据ggplot2图书馆 现在我遇到了数据准备的问题 我需要编写一个函数 该函数将从数据框中删除指定列中具有最高和最低值的一些数字 2 5 或 10 行 并将它们放入另一个数据框中 并对两个因素的每
  • R 中的因素:不仅仅是烦恼?

    R 中的基本数据类型之一是因子 根据我的经验 因素基本上是一种痛苦 我从不使用它们 我总是转换为字符 我感觉很奇怪 好像我错过了什么 是否有一些使用因子作为分组变量的函数的重要示例 其中因子数据类型变得必要 当我should使用因素 你应该
  • int NA 的内部表示[重复]

    这个问题在这里已经有答案了 这是关于 R 内部结构的问题 R 中如何表示整数 NA 值 与浮点不同 没有神奇的位序列来表示 NaN Create big array newer versions of R won t allocate me
  • ggplot2:使用 geom_bar 绘制平均值

    我有以下数据框 test2 lt data frame groups c rep group1 4 rep group2 4 X2 c rnorm 4 rnorm 4 label c rep 1 2 rep 2 2 rep 1 2 rep
  • 带有预先计算值的 geom_boxplot

    过去 我已经能够使用 ggplot2 创建箱线图 方法是提供下须线 下分位数 中位数 上分位数和上须线以及 x 轴标签 例如 DF lt data frame x c A B min c 1 2 low c 2 3 mid c 3 4 to
  • 按成员列表的长度对列表列表进行排序

    我有来自作为 S4 对象类型的包 apcluster 的输出 其中一个成员是确定找到的每个簇的成员的列表列表 我想按长度 最大的簇 对该列表进行排序 我的代码现在看起来像 ap result lt apcluster args cluste
  • 使用具有聚类数据的小鼠进行插补

    所以我正在使用mice用于估算缺失数据的包 我是插补新手 所以我已经到了一定程度 但遇到了陡峭的学习曲线 举一个玩具例子 library mice Using nhanes dataset as example df1 lt mice nh
  • 将 geom_text 与 ggplot2 中的 geom_vline 对齐

    I used vjust作为解决方法并详细阐述 通过尝试和错误可以接受的距离 但这有时非常耗时且变化 与字体大小和轴比例 有没有更好的方法来自动对齐示例中的文本 library ggplot2 ggplot data mtcars aes
  • 使用 ggplot2 将抖动应用于箱线图中的异常值数据

    您知道如何将抖动仅应用于箱线图的异常值数据吗 这是代码 ggplot data a aes x y a V8 geom boxplot outlier size 0 5 geom point data a aes x y a V8 54 c
  • R 中数据帧的稀疏矩阵

    我有一个稀疏矩阵 Formal class dgCMatrix package Matrix with 6 slots i int 1 37674 1836 2297 108 472 1735 1899 2129 2131 5 67 p i
  • data.table中的行操作

    我正在尝试使用以下方法对行执行简单的求和和平均值数据表 http datatable r forge r project org 但我得到了意想不到的结果 我遵循了第 2 节中的帮助常见问题手册 http cran r project or
  • 风玫瑰与 ggplot (R)?

    我正在寻找使用 ggplot2 来创建的良好 R 代码 或包 风玫瑰 http en wikipedia org wiki Wind rose显示风的频率 强度和方向 我对 ggplot2 特别感兴趣 因为以这种方式构建绘图使我有机会利用其
  • 在 ggplot2 直方图中的图例下插入表格

    有没有办法让 grid arrange 充当 split screen 我想在图例的正下方安排一张桌子 create histogram my hist lt ggplot diamonds aes clarity fill cut geo
  • 修改 %in% 运算符以查找列表中的对象

    我必须修改 in 运算符将在列表中查找对象 我有一个清单 list1 lt list c 5 6 6 list 2 c 5 6 string 未修改 in 测试这些值后的运算符 c 5 6 in list1 6 in list1 2 in
  • 添加标签以绘制 R 中的特定值

    我使用以下数据集创建一个图 并且我想仅为 DisplayName 列中标有 T 的点添加标签 Probe Name DisplayName X Y bob1 A 0 53 989643 7935 185 bob2 B T 55 11423

随机推荐