Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何同步R中直方图顶部的频率多边形的轴?_R_Rgui - Fatal编程技术网

如何同步R中直方图顶部的频率多边形的轴?

如何同步R中直方图顶部的频率多边形的轴?,r,rgui,R,Rgui,在一个例子中,我问如何在直方图顶部叠加一个频率多边形。这个问题解决了。我现在有一个不同的问题。我希望频率多边形的类标记在每个直方图条的中间。类标记是一个类的中间值,通过平均直方图条的上下边界(A.K.A,“类”)来找到。如果我绘制频率多边形,我只需在每个直方图类(或条)中间画一个点,然后连接点。但是,当我执行以下代码时,频率多边形是“展开的”,并且没有与直方图相同的轴值 # declare your variable data <- c(10, 7, 8, 4, 5, 6, 6, 9, 5

在一个例子中,我问如何在直方图顶部叠加一个频率多边形。这个问题解决了。我现在有一个不同的问题。我希望频率多边形的类标记在每个直方图条的中间。<强>类标记是一个类的中间值,通过平均直方图条的上下边界(A.K.A,“类”)来找到。如果我绘制频率多边形,我只需在每个直方图类(或条)中间画一个点,然后连接点。但是,当我执行以下代码时,频率多边形是“展开的”,并且没有与直方图相同的轴值

# declare your variable
data <- c(10, 7, 8, 4, 5, 6, 6, 9, 5, 6, 3, 8,
+ 4, 6, 10, 5, 9, 7, 6, 2, 6, 5, 4, 8, 7, 5, 6)

# find the range
range(data)

# establish a class width
class_width = seq(1, 11, by=2)
class_width

# create a frequency table
data.cut = cut(data, class_width, right=FALSE)
data.freq = table(data.cut)
cbind(data.freq)

# histogram of this data
hist(data, axes=TRUE,
breaks=class_width, col="slategray3",
border = "dodgerblue4", right=FALSE, 
xlab = "Scores", xaxp=c(1, 11, 10), 
yaxp=c(0, 12, 12), main = "Histogram and Frequency Polygon")

# paint the frequency polygon over the histogram
par(new=TRUE)

# create a frequency polygon for the data
plot(data.freq, axes=FALSE, type="b", ann=FALSE)
#声明变量
数据如果查看
hist(…)
的(不可见)输出,您将看到几个可能有用的属性。值得注意的是:
$mids
。(它们在中有很好的定义。)

在调用
hist
之前使用数据:

h <- hist(data, axes=TRUE,
    breaks=class_width, col="slategray3",
    border = "dodgerblue4", right=FALSE, 
    xlab = "Scores", xaxp=c(1, 11, 10), 
    yaxp=c(0, 12, 12), main = "Histogram and Frequency Polygon")
str(h)
# List of 6
#  $ breaks  : num [1:6] 1 3 5 7 9 11
#  $ counts  : int [1:5] 1 4 12 6 4
#  $ density : num [1:5] 0.0185 0.0741 0.2222 0.1111 0.0741
#  $ mids    : num [1:5] 2 4 6 8 10
#  $ xname   : chr "data"
#  $ equidist: logi TRUE
#  - attr(*, "class")= chr "histogram"
如果这是一个必须使用
par(new=TRUE)
的简化示例,那么您需要做两件事:设置第二行的
xlim
/
ylim
,并给出适当的X点。(您可能没有意识到这一点,但第二个绘图正在推断
1:5
的X值。只需
plot(data.freq)
即可查看。)

par(新=真)
xlim如果查看
hist(…)
的(不可见)输出,您将看到几个可能有用的属性。值得注意的是:
$mids
。(它们在中有很好的定义。)

在调用
hist
之前使用数据:

h <- hist(data, axes=TRUE,
    breaks=class_width, col="slategray3",
    border = "dodgerblue4", right=FALSE, 
    xlab = "Scores", xaxp=c(1, 11, 10), 
    yaxp=c(0, 12, 12), main = "Histogram and Frequency Polygon")
str(h)
# List of 6
#  $ breaks  : num [1:6] 1 3 5 7 9 11
#  $ counts  : int [1:5] 1 4 12 6 4
#  $ density : num [1:5] 0.0185 0.0741 0.2222 0.1111 0.0741
#  $ mids    : num [1:5] 2 4 6 8 10
#  $ xname   : chr "data"
#  $ equidist: logi TRUE
#  - attr(*, "class")= chr "histogram"
如果这是一个必须使用
par(new=TRUE)
的简化示例,那么您需要做两件事:设置第二行的
xlim
/
ylim
,并给出适当的X点。(您可能没有意识到这一点,但第二个绘图正在推断
1:5
的X值。只需
plot(data.freq)
即可查看。)

par(新=真)

xlim这正是我来到Stackoverflow寻求的非常有用的帮助!非常感谢你富有洞察力的回答。完美的很乐意帮助。。。谢谢你在9K上给我带来的麻烦:-)这正是我来Stackoverflow寻求的非常有用的帮助!非常感谢你富有洞察力的回答。完美的很乐意帮助。。。谢谢你在9K上撞到我:-)
par(new = TRUE)
xlim <- range(class_width)
ylim <- c(0, max(h$counts))
plot(h$mids, data.freq, axes = FALSE, type = "b", ann = FALSE,
     xlim = xlim, ylim = ylim)