使用ggeasy R软件包更轻松地进行ggplot

ggplot2数据可视化R软件包非常强大且灵活。 但是,记住如何完成每个任务并不总是那么容易-尤其是如果您不是经常使用的用户。 如何更改图形标题的大小? 如何删除图例标题? 我通常的解决方案是保存RStudio代码段以备不时之需 。 但是还有一个可以帮助您的软件包: ggeasy

正如其名说,ggeasy的目标是,好了,让GGPLOT2容易-或至少EASI 。 有些人可能会发现它对于典型的任务(大多数是围绕文本和轴格式设置)具有更直观的功能。 (此程序包不会影响线,点和条的外观和行为方式)。 所有ggeasy函数都以easy_ ,是的,很容易使用RStudio自动完成功能找到它们。 您可以在上面的视频中看到它的工作原理。

[ 在InfoWorld的“用R做更多”的视频系列中获取Sharon Machlis的R技巧 | 按任务,主题或程序包搜索“用R做更多”操作视频 ]

如果您想按照下面的示例进行操作,则ggeasy在CRAN上,因此可以使用install.packages("ggeasy") 。 我还将自然使用ggplot2,dplyr,rio和lubridate软件包。 稍后,我将添加补丁程序包,以使多个图形的放置变得非常简单。 这也在CRAN上。

对于此示例,我将使用有关当今大多数人心目中的数据:冠状病毒。 您可以从Coronavirus Tracking Project通过以下方式下载包含美国各州数据的CSV文件:

download.file("http://covidtracking.com/api/states/daily.csv",
destfile = "covid19.csv")

(您可以将destfile目标文件命名为任意名称。)我使用rio::import()导入数据,但也可以使用readr::read_csv()read.csv()data.table::fread()或任何其他导入CSV的函数。

使用rio,日期以整数形式输入,因此我将使用lubridate的ymd()函数将该列转换为Date对象:

data$date <- lubridate::ymd(data$date)

要创建一个不太难理解的图形,我将针对几种状态过滤此数据,因此不会有50条单独的时间序列线。 我选择路易斯安那州来看看那里的案件数量上升–路易斯安那州州长说,该州是全世界案件数量增长最快的国家之一。 (有猜测称,二月份的狂欢节可能导致了新奥尔良的一个集群。)我还将添加马萨诸塞州,该州的人口比路易斯安那州多50%,因为我在这里居住。

过滤数据后,我将创建数据的基本折线图:

states2 <- filter(data, state %in% c("LA", "MA"))
ggplot(states2, aes(x = date, y = positive, color = state)) +
geom_line() +
geom_point() +
theme_minimal() +
ggtitle("Lousiana & Massachusetts Daily Covid-19 Cases")
01ggeasy 沙龙·马克斯(IDG)

ggplot1制作的路易斯安那州和马萨诸塞州每日总COVID-19病例的基本图。

这是一个相当大的增长。 其中一些可能是由于测试的增加–也许我们只是知道更多情况,因为测试量增加了。 我待会儿看。

但是,首先,对该图进行一些调整怎么样?

让我们从扩大图形标题开始。 要使用ggeasy,我将开始在RStudio左上方的源窗格中键入easy_并滚动直到找到所需的内容。

RStudio自动完成列表,用于以easy_开头的ggeasy函数。 沙龙·马克斯(IDG)

在RStudio中输入easy_有助于查找ggeasy函数。

easy_plot_title_size()看起来像我需要的功能。 我可以使用以下代码将图形标题更改为16点类型:

ggplot(states2, aes(x = date, y = positive, color = state)) +
geom_line() +
geom_point() +
theme_minimal() +
ggtitle("Lousiana & Massachusetts Daily Covid-19 Cases") +
easy_plot_title_size(16)

我可以使用easy_rotate_x_labels(90)旋转x轴文本90度,并使用easy_rotate_x_labels(90)删除图例标题(很明显,这些是状态easy_remove_legend_title() 。 完整的图形代码在下面,包括将图形存储在名为positives的变量中。

positives <- ggplot(states2, aes(x = date, y = positive, color = state)) +
geom_line() +
geom_point() +
theme_minimal() +
ggtitle("Lousiana & Massachusetts Daily Covid-19 Cases") +
easy_plot_title_size(16) +
easy_rotate_x_labels(90) +
easy_remove_legend_title()
具有几个ggeasy功能的图形进行了调整,包括旋转x轴文本和增加标题大小。 沙龙·马克斯(IDG)

具有几个ggeasy功能的图形进行了调整,包括旋转x轴文本和增加标题大小。

接下来,我想看一下冠状病毒测试的阴性结果,看它们是否以与阳性相似的速度上升。 我将使用相同的代码,只是将y列切换为负数。

negatives <- ggplot(states2, aes(x = date, y =negative , color = state)) +
geom_line() +
geom_point() +
theme_minimal() +
ggtitle("Lousiana & Massachusetts Negatives") +
easy_plot_title_size(16) +
easy_rotate_x_labels(90) +
easy_remove_x_axis("title") +
easy_remove_y_axis("title") +
easy_remove_legend_title()
路易斯安那州和马萨诸塞州每日COVID-19阴性测试结果图表 沙龙·马克斯(IDG)

阴性COVID-19测试结果图。

路易斯安那州的积极因素似乎比消极因素要大。 尽管我们不知道这是否是因为测试标准已更改或其他原因。

并排查看这两个图形会很有帮助。 那就是拼凑而成的软件包的来源。

仅用这两行代码,首先加载了补丁程序包:

library("patchwork")
positives + negatives

我得到这个:

与ggplot2并排显示的图形和补丁程序包。 沙龙·马克斯(IDG)

与ggplot2并排显示的图形和补丁程序包。

拼凑在一起放置多个图形非常容易。 有关如何自定义布局的更多信息,请访问拼凑而成的网站

现在,我可以回去并使用ggeasy删除其中一个图例,以便没有两个图例,然后重新运行拼凑而成:

negatives <- negatives +
easy_remove_legend()
positives + negatives

显然,ggeasy对于快速而轻松的数据探索非常有用!

有关R的更多技巧,请转到InfoWorld上“用R做更多”页面,或查看YouTube播放列表中“用R做更多”

翻译自: https://www.infoworld.com/article/3533453/easier-ggplot-with-the-ggeasy-r-package.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值