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](https://i-blog.csdnimg.cn/blog_migrate/6275edb5904f8f875a568469112d57b3.png)
ggplot1制作的路易斯安那州和马萨诸塞州每日总COVID-19病例的基本图。
这是一个相当大的增长。 其中一些可能是由于测试的增加–也许我们只是知道更多情况,因为测试量增加了。 我待会儿看。
但是,首先,对该图进行一些调整怎么样?
让我们从扩大图形标题开始。 要使用ggeasy,我将开始在RStudio左上方的源窗格中键入easy_
并滚动直到找到所需的内容。
![RStudio自动完成列表,用于以easy_开头的ggeasy函数。](https://i-blog.csdnimg.cn/blog_migrate/94a732e835479627bb5b647dd34e3b46.png)
在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轴文本和增加标题大小。](https://i-blog.csdnimg.cn/blog_migrate/5f47fb574b98de64c05af16bd58c72ab.png)
具有几个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阴性测试结果图表](https://i-blog.csdnimg.cn/blog_migrate/eb5e6514c44cd9bbb6cc9ecb5daa3f1d.png)
阴性COVID-19测试结果图。
路易斯安那州的积极因素似乎比消极因素要大。 尽管我们不知道这是否是因为测试标准已更改或其他原因。
并排查看这两个图形会很有帮助。 那就是拼凑而成的软件包的来源。
仅用这两行代码,首先加载了补丁程序包:
library("patchwork")
positives + negatives
我得到这个:
![与ggplot2并排显示的图形和补丁程序包。](https://i-blog.csdnimg.cn/blog_migrate/5b22d98af27c0d90055af537780f72f1.png)
与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