gpt4 book ai didi

r - 使用 R 将 qicharts 图转换为 ggplot

转载 作者:行者123 更新时间:2023-12-04 11:12:51 24 4
gpt4 key购买 nike

我的数据框看起来像这样

Datetime <- c("2015-09-29AM", "2015-09-29PM" ,"2015-09-30AM", "2015-09-30PM", "2015-10-01AM" ,"2015-10-01PM" 
,"2015-10-02AM", "2015-10-02PM" ,"2015-10-03AM" ,"2015-10-03PM", "2015-10-04AM" ,"2015-10-04PM"
,"2015-10-05AM", "2015-10-05PM", "2015-10-06AM" ,"2015-10-06PM")
FailRate_M1 <- c(0.0000000,0.0000000,0.9615385,0.9009009,0.0000000,1.4492754,1.5151515,0.0000000,0.8849558,0.0000000,4.4444444,0.7142857
,0.0000000,10.3448276,0.0000000,0.0000000)

df1 <- data.frame(Datetime,FailRate_M1)

现在我使用“qichart”包中的 qic 函数并获得这个图。
library(qicharts)
qic(FailRate_M1,
x = Datetime,
data = df1,
chart = 'c',
runvals = TRUE,
cex = 1.2,
main = 'Measurement Fail Rate (M1)',
ylab = 'MFR (%)',
xlab = 'Datetime')

enter image description here

可以使用 ggplot 绘制此图吗?或者可以转换成ggplot格式吗?请提供您的意见并帮助我解决这个问题。

有很多函数都有自己定制的绘图方式,但我想看看我们是否可以将这些绘图转换为 ggplot。

我尝试执行以下操作
p1<-  qic(FailRate_M1,               
x = Datetime,
data = df1,
chart = 'c',
runvals = TRUE,
cex = 1.2,
main = 'Measurement Fail Rate (M1)',
ylab = 'MFR (%)',
xlab = 'Datetime')

然后我尝试使用 ggplot
library(ggplot2)
sp <- ggplot(p1, aes(x = Datetime, y = FailRate_M1))+
geom_point(size=2.5)
sp

并得到以下错误“ 错误:ggplot2 不知道如何处理 qic 类的数据

最佳答案

使用您的 p1 数据框以 Jason 的回答为基础。

您可以访问 qic 函数返回的值,并在函数调用中使用 print.out =TRUE 在控制台中查看它们。

使用 dplyr 更新答案:

library(dplyr)
library(ggplot2)
library(ggExtra)# optional for plot tidying
df2 <- data.frame(p1$labels,p1$y,p1$cl,p1$ucl) %>%
dplyr::rename(y = p1.y,
Datetime = p1.labels,
cl = p1.cl,
ucl= p1.ucl)

p <- ggplot(df2, aes(x = Datetime, y = y, group = 1)) +
theme_minimal() +
geom_line(color = "steelblue", size = 1) +
geom_point(color = "steelblue", size = 3) +
geom_point(data = subset(df2, FailRate_M1 >= 10), color = "red", size = 4) +
geom_hline(aes(yintercept = cl)) +
geom_hline(aes(yintercept = ucl)) +
labs(title = "Measurement Fail Rate (M1)",
y = "MFR (%)")
p <- p + removeGrid() + rotateTextX() #from ggExtra,personal preference
p

final plot

拦截线不再是硬编码的。
我从所有运行/控制图表中删除了无关的水平线,ggExtra 的 removeGrid 和 rotateTextX() 比等效的 ggplot2 语法更容易记住(至少对我而言)

关于r - 使用 R 将 qicharts 图转换为 ggplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33262335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com