我正在尝试为S3类shwehart的对象编写一个plot方法。此图应显示Xi的值,应包括警告限制和动作限制线。 我试图使用plot.shewhart(x,y,...),R给了我一个情节,但没有直线。 谁能帮助我?提前谢谢。
<?php
session_start();
?>
<html>
<head></head>
<body>
<?php
require("config.php");
$id = $_POST['id'];
$sql = "select * from users where id='$id'";
$res = mysqli_query($con, $sql);
$row = mysqli_fetch_array($res);
$user_to = $row['name'];
$sql1 = "select * from chats where user_from='$_SESSION[name]' AND user_to='$user_to' OR user_to='$_SESSION[name]' AND user_from='$user_to' order by id";
$res1 = mysqli_query($con, $sql1);
if(mysqli_num_rows($res1) > 0) {
while($row = mysqli_fetch_array($res1)) {
if($row['user_from'] == $_SESSION['name'])
$color = 'red';
else
$color = 'purple';
echo '<i><p style="font-family:arial;color:' . $color . ';font-size:15px;">' . $row['msg'] . '</p>';
}
} else
echo "No msgs <br />";
?>
</body>
</html>
答案 0 :(得分:2)
您发布的代码中存在两个问题。
1)您希望像数据框一样使用samean
- 您希望samean[, 1]
之类的内容能够正常运行 - 但也喜欢您的新课程shewhart
。因此,您不希望替换 data.frame
类,您希望扩展它。我们改变你的行
# class(samean)<-"shewhart" # bad
class(samean) <- c("shewhart", class(samean)) # good
这样它仍然是data.frame
,它只是一种特殊类型的数据框:
class(samean)
# [1] "shewhart" "data.frame"
2)对于函数参数,请使用=
而非<-
。这是plot
命令中的问题。此外,您的函数将其输入命名为x
,因此您应该仅将其引用为函数内的x
。
# plot(x<-samean[,1],y<-samean[,2], type="b", col="blue",
xlim<-c(0,10), ylim<-c(120,140) ) # bad
plot(x = x[,1], y = x[,2], type = "b", col = "blue",
xlim = c(0,10), ylim = c(120,140) ) # good
通过这些更改,代码可以按照您的描述进行操作。我重新格式化了可读性,但唯一真正的变化是上面提到的那些。
aa <- c(1:10)
bb <- c(127, 128, 128.5, 125.5, 129, 126.5, 129, 126, 125, 130)
samean <- data.frame(aa, bb)
class(samean) <- c("shewhart", class(samean))
plot.shewhart <- function(x) {
mu = 127
sigma = 3.4
plot(
x = x[, 1],
y = x[, 2],
type = "b",
col = "blue",
xlim = c(0, 10),
ylim = c(120, 140)
)
abline(h = mu, col = "blue")
abline(h = mu + 3 * sigma / sqrt(100), col = "green")
abline(h = mu - 3 * sigma / sqrt(100), col = "green")
}
plot(samean)
请立即删除您的问题。