使用 geom_line 绘制多条线(基于分组)

2024-04-28

请帮助我,关于当我尝试在 ggplot2 中使用 geom_line 绘制分组的多条线时遇到的问题。 当我尝试根据一个变量/列(即:区域)对行进行分组时,问题就出现了。

GDP_time_series_analysis %>% 
  group_by(Region) %>% 
  ggplot()+geom_line(aes(Year, Total_GDP, group=Region, color=Region))

The code that I provide produces the following graph: enter image description here it is correct graph only for one region (purple line) that consists of only one county (another variable), but not for the other 3 regions that have more counties. I suppose there is a problem with grouping, I am not able to group other 3 regions as a group for the graph (although, as you see, I did use group_by (Region) in the code).

很抱歉,如果这个问题不是完全不符合标准(这是我第一次在这里),谢谢。 数据子集如下:

 structure(list(County = c("City of Zagreb", "City of Zagreb", 
"City of Zagreb", "City of Zagreb", "City of Zagreb", "City of Zagreb", 
"City of Zagreb", "City of Zagreb", "City of Zagreb", "City of Zagreb", 
 "City of Zagreb", "City of Zagreb", "City of Zagreb", "City of Zagreb", 
 "City of Zagreb", "City of Zagreb", "City of Zagreb", "City of Zagreb", 
 "Zagreb County", "Zagreb County", "Zagreb County", "Zagreb County", 
 "Zagreb County", "Zagreb County", "Zagreb County", "Zagreb County", 
 "Zagreb County", "Zagreb County", "Zagreb County", "Zagreb County"
  ), Region = c("Zagreb", "Zagreb", "Zagreb", "Zagreb", "Zagreb", 
 "Zagreb", "Zagreb", "Zagreb", "Zagreb", "Zagreb", "Zagreb", "Zagreb", 
  "Zagreb", "Zagreb", "Zagreb", "Zagreb", "Zagreb", "Zagreb", "North        Croatia", 
 "North Croatia", "North Croatia", "North Croatia", "North Croatia", 
 "North Croatia", "North Croatia", "North Croatia", "North Croatia", 
  "North Croatia", "North Croatia", "North Croatia"), Year = c(2000, 
  2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 
  2012, 2013, 2014, 2015, 2016, 2017, 2000, 2001, 2002, 2003, 2004, 
  2005, 2006, 2007, 2008, 2009, 2010, 2011), Population = c(771000, 
  771000, 772000, 772000, 775000, 776000, 778000, 780000, 783000, 
   785000, 788000, 790000, 792000, 795000, 798000, 8e+05, 802000, 
  803000, 296000, 296000, 299000, 302000, 305000, 307000, 310000, 
  312000, 314000, 315000, 317000, 317000), GDP_percap_EUR =        c(8975.53835599625, 
  10168.0040269207, 11091.6676199461, 12240.0345558531, 13421.0447587177, 
   15085.3049042075, 16647.4994908354, 18025.966664434, 19706.5391945802, 
   18534.1115208295, 19739.3466772558, 19408.6216726494,          18961.2735614516, 
   18546.0140474649, 18477.4378485715, 18994.6373722612, 19710.3754557913, 
  20849.7073006642, 4335.38213876616, 4307.23697694032, 5278.97949713334, 
  5459.93196849043, 5967.08989896781, 6687.19494658443, 6861.43232701965, 
  7759.05700432905, 8446.22608743048, 8086.60105100451, 7541.08792074132, 
  7667.23597749996), GDP_percap_PPP_EU_100 = c(80.0982702062271, 
  82.6988344044675, 85.4138484640405, 91.204873884138, 93.9216165828703, 
  99.0724656137407, 104.305150969215, 107.963791825045, 111.305636873515, 
  109.91689646398, 111.438020798517, 110.735014385039, 110.140140004045, 
  107.718076160351, 105.910224718338, 106.327225119802, 107.021331220602, 
  108.151130040081, 38.6892235568413, 35.0317994125204, 40.6519533638096, 
  40.6839052888146, 41.7582043486098, 43.9180311969089, 42.9904043624586, 
  46.4716944599064, 47.7056151035234, 47.9577394076775, 42.5730357896448, 
  43.7450685876577), Total_GDP = c(6920140072.47311, 7839531104.75587, 
  8562767402.59836, 9449306677.11856, 10401309688.0062, 11706196605.665, 
  12951754603.8699, 14060253998.2585, 15430220189.3563, 14549277543.8512, 
  15554605181.6776, 15332811121.393, 15017328660.6697, 14744081167.7346, 
   14744995403.16, 15195709897.809, 15807721115.5446, 16742314962.4333, 
  1283273113.07478, 1274942145.17433, 1578414869.64287, 1648899454.48411, 
  1819962419.18518, 2052968848.60142, 2127044021.37609, 2420825785.35066, 
  2652114991.45317, 2547279331.06642, 2390524870.875, 2430513804.86749
   )), row.names = c(NA, -30L), class = c("tbl_df", "tbl", "data.frame"
    ))

问题是,您的数据位于县级别,但您将其绘制在区域上(粒度较小)。如果您尝试按照您的方式直接绘制数据,您最终会得到每组多个值。您必须应用汇总统计数据才能获得一些有意义的结果。

这是使用一些虚拟数据的小插图:

df <- tibble(County = rep(c("Krapina-Zagorje", "Varaždin","Zagreb"), each = 3),
         Region = rep(c("North Croatia","North Croatia","Zagreb"), each = 3),
         Year = rep(2015:2017,3),
         GDP = 1:9)
ggplot(df, aes(x = Year, y = GDP, colour =Region, group = Region)) +  geom_line() + geom_point()

由于每组只需要一个值,因此您必须相应地汇总数据(我假设您对每组的总和感兴趣):

ggplot(df, aes(x = Year, y = GDP, colour =Region, group = Region)) + stat_summary(fun = sum, geom = "line")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 geom_line 绘制多条线(基于分组) 的相关文章

随机推荐

  • 如何使用 Typhoon 为集成测试注入假的、存根的或模拟的依赖项

    我正在尝试使用 KIF 编写集成测试 我的问题是 如何为特定视图控制器注入存根 模拟或虚假依赖项 每个使用数据模型 http 客户端 存储管理器等依赖项的视图控制器都来自 ModelAssembly ApplicationAssembly
  • 在 ElasticSearch 7+ 中,如何搜索所有文本字段?

    我想在 Elasticsearch 7 3 中存储的文档中搜索单词 我希望在以前版本的 Elasticsearch 上运行的一个示例是 query bool must match all oliver must not should fro
  • NodeJs util.promisify 不是一个函数

    我正在尝试 promisify mysql 函数 但是当我运行它时 控制台显示此错误util Promisify is not a function 这是我的代码 var util require util var mysql requir
  • 在 R 中查找 Twitter 关注者

    我想使用 R 查找用户的 Twitter 关注者的个人资料 关注者 gt 100000 尽管 twitteR 是一个很棒的软件包 但它在处理大量关注者时存在问题 因为人们需要实施睡眠例程以避免超过速率限制 我是一个相对新手 想知道如何循环遍
  • Python中如何从另一个函数调用一个函数内的函数? [复制]

    这个问题在这里已经有答案了 我已经在 python 中的另一个函数中定义了一个函数 现在我想调用内部函数 在Python中这可能吗 我怎么打电话func2 from func3 def func1 def func2 print Hello
  • 以正确的顺序添加 XML 元素

    我想添加元素到X文档 https msdn microsoft com de de library system xml linq xdocument 28v vs 110 29 aspx我想要构建的 XML 对象和元素的顺序是在 XSD
  • PHP-访问类的所有函数中的全局变量[重复]

    这个问题在这里已经有答案了 我需要在类的大多数函数中访问外部 php 文件的一些变量 我正在通过以下方式访问 并且工作正常 class test function a global myglobalvar function b global
  • javascript设置间隔作为单独的线程运行?

    我想使用计时器作为后备 以防我最终陷入无限循环 看来设置间隔是执行此操作的正确方法 但是 它对我不起作用 根据我的研究 setInterval 似乎应该在后台的单独线程中运行 但我没有看到它 为什么会发生这种行为 我该如何解决这个问题 va
  • 在 JSON-LD 中创建产品数组

    有人能发现我下面的代码有什么问题吗 它不会在 Google 结构化测试工具中进行验证 我正在尝试创建 JSON LD 代码以添加到具有多种待售产品的页面
  • Java中的逆向正则表达式

    Java中如何反转正则表达式 例如 ab de gt ed ba wow 您需要为正则表达式构建一个解析器并反转所有标记 部分 在这种情况下 ab de 是 a b d e 并反转这是 e d b a 现在想象一下群体 ab de 相反的是
  • 正则表达式没有方法测试[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 ATM机允许4 或 6 位数字PIN 码和 PIN 码不能包含任何内容 但exactly 4 位数字或恰好 6 位数字 如果函数传
  • 如何在当前打开的文件中保存 VSTO 加载项的选项?

    我正在为 Powerpoint 2010 构建 VSTO 外接程序 并且外接程序设置的选项适用于当前打开的文件 而不是每个用户的配置 我可以将这些选项保存在当前文件中 我的意思是 将自定义 XML 添加到 PPTX 文件中 吗 如果是这样
  • C# 语法高亮着色

    我可以像在 Visual Studio 中一样单独更改字段 局部变量的颜色吗 下面是 Visual Studio 中的样子 字段变量赋值 读写为绿色 局部变量赋值 读写为白色 但在 VSCode 中 本地变量和字段变量的范围都是 varia
  • NextAuth 登录未触发我的凭据提供程序中的授权方法

    我正在开发一个 Next js 项目 使用 NextAuth 进行身份验证 我遇到一个问题 登录组件中对 SignIn 的调用似乎没有触发我的凭据提供程序中的授权方法 以下是我的 nextauth js 文件的摘录 CredentialsP
  • 如何在.Net Console App中设置默认输入值?

    如何在 net 控制台应用程序中设置默认输入值 这是一些虚构的代码 Console Write Enter weekly cost string input Console ReadLine 135 135 is the default T
  • Azure Functions - 使用具有托管标识的队列触发器

    我正在尝试将托管标识与 Azure Functions V3 和 QueueTrigger 结合使用 函数代码定义如下 Function ProcessUserData public async Task ProcessUserData Q
  • C 中的可移植函数(无汇编)返回其堆栈帧的大小

    用 C 编写一个可移植函数 无需汇编 返回其堆栈帧的大小 int stackframe size 尝试如下解决 该函数在使用 VS 2010 编译时返回 228 字节 有没有办法验证其正确性 int stackframe size int
  • 无需 root 即可安装 Jekyll

    我想在共享服务器上建立一个 jekyll 博客 当我尝试安装 Jekyll 时 我收到 您没有写入权限 如何在没有 root 或 sudo 的情况下解决这个问题 更多详情 我在共享服务器上有空间 但没有 root 访问权限 我无法安装 Ru
  • C++ 中的 memset 初始化

    memset 有时用于初始化构造函数中的数据 如下例所示 一般情况下有效吗 总的来说这是一个好主意吗 class A public A private int a float f char str 35 long lp A A memset
  • 使用 geom_line 绘制多条线(基于分组)

    请帮助我 关于当我尝试在 ggplot2 中使用 geom line 绘制分组的多条线时遇到的问题 当我尝试根据一个变量 列 即 区域 对行进行分组时 问题就出现了 GDP time series analysis gt group by