作者vetvet ( )
看板R_Language
标题[问题] ggpattern 做图问题
时间Sun Aug 23 12:18:10 2020
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
各位前辈好,小弟正在整理实验的资料进行论文撰写,
数据的图表主要以 ggplot2 进行绘制,在柱状图中想填充线条(直线/横线等),
因此使用 ggpattern 这个套件,在制做图表的过程中,突然遇到无法做图的问题,
特别是在使用 pattern = "magick" 时会出现 error,
删掉这项或用其他图形选项,就可以出图,但又无法自订填充 pattern,
error message 的内容又不知如何修改…
想请教应如何解决这个问题,谢谢
[程式范例]:
#使用套件
library(ggplot2)
library(ggpattern)
# 资料表单
# 表单项目包含 Group2, WPC, mean, SE
a <- data.frame(Group2 = c("C", "C", "C", "C", "A1", "A1", "A1", "A1",
"A1", "B1", "B1", "B1", "B1", "B1", "D", "D", "D", "D", "D"),
WPC = c(-4, 0, 1, 3, -4, 0, 1, 2, 3, -4, 0, 1, 2, 3, -4, 0,1, 2, 3),
mean = c(0.46600, 0.84100, 1.41200, 3.11100, -0.51725,0.11100,
0.00075, 1.12425, 2.17350, -0.19225, 0.83825,1.73100,
2.72275, 2.86675, -0.74175, 3.82575, 1.64250, 3.70875, 3.98275),
SE = c(0.2234327, 0.1664126, 0.6513623, 0.4452928, 0.7768604,
0.8240675, 0.9581961, 1.2281746, 0.2186948, 0.2168496,
0.9284905, 0.9330518, 0.9475290, 0.2215267, 0.4349041,
1.7227386, 0.4133089, 0.5498973, 0.5349533))
# 作图
ggplot(a, aes(factor(WPC), mean, gorup = Group2))+
geom_col_pattern(aes(pattern_type=Group2), pattern="magick",
pattern_fill="black", pattern_color="black", fill="white", color="black",
width = 0.5, position = position_dodge(0.5)) +
scale_pattern_type_discrete(choices = c("vertical", "horizontal",
"hs_vertical", "hs_horizontal"))
# 错误讯息
Error in png(png_file, width = width, height = height) :
invalid 'width' or 'height'
此外: Warning messages:
1: In png(png_file, width = width, height = height) :
'width=11, height=19' are unlikely values in pixels
2: In png(png_file, width = width, height = height) :
'width=11, height=4' are unlikely values in pixels
3: create_magick_pattern_img(): zero size
4: In FALSE :
create_pattern_array(): Expecting a numeric RGBA array with dim = c(0, 11,
4) but instead got a "array" of type double with dimensions c(10L, 11L, 4L)
[环境叙述]:
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19041)
相关套件版本
ggplot2_3.3.2
ggpattern_0.1.3
[关键字]:
ggpattern
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.127.58.191 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1598156294.A.B5D.html
※ 编辑: vetvet (59.127.58.191 台湾), 08/23/2020 12:47:05
※ 编辑: vetvet (59.127.58.191 台湾), 08/23/2020 13:01:17
1F:推 locka: 你X轴打算放的是WPC还是Group2?问题应该是出在你dataframe 08/23 15:00
2F:→ locka: 你X轴打算放的是WPC还是Group2?问题应该是出在你dataframe 08/23 15:05
5F:推 locka: 要把wpc栏位填进去是可行的,可是wpc的类别数必须要跟Group 08/23 15:18
6F:推 locka: 2的类别数一致。你资料里wpc有5种可是Group2只有4种 08/23 15:18
谢谢 l大帮忙审视我的问题,
我是想要以 WPC 做为 x 轴,代表不同时间点的结果,
而实验组别 A1 ~ D 则在每个时间点采样测试,
最後完成图应该会要是像这样 (上周做的图,是不同的观测项目)
https://imgur.com/cf4V6cO.jpg
但是在本周开始,由同一张资料表选不同检测项目,做出来的平均值(mean),
却没办法顺利相似的图形,所以觉得奇怪,
若单纯把原本做图码中的 pattern = "magick" 删除,
则又可以产出图形,图形中的数值是对的,但是填充内容无法更改,
我想是变成预设的 pattern = "stripe"
https://imgur.com/kJ8Y5WG.jpg
如果是因为 WPC 和 Group2 类别数目不一样的话,
我以为在不同的 pattern 下应该也无法顺利产生图形?
不过我明天会再仔细检查一下原始的数据是否有问题的,谢谢 l大 帮忙,万分感谢!
※ 编辑: vetvet (1.168.47.39 台湾), 08/24/2020 00:16:09