使用统计库绘制直方图
Ploting histograms using stats library
我是编程新手,如果这是一个已经回答了很多次的基本问题,我很抱歉。我正在尝试绘制一个直方图,该直方图在 X 轴上有月份,在 Y 轴上有太阳黑子的数量。为了获取数据,我正在使用统计库。
x <- datasets::sunspot.month
h <- hist(x, breaks=12, col="red", xlab="Month", main="Histogram with Normal Curve")
这是我目前拥有的代码,我得到了一些奇怪的结果(可能是错误的结果),关于我应该尝试什么的任何建议?
P.S。你可以忽略名义曲线,一旦我做对了,我会尝试自己做。
How the data looks like
因为它是一个 time-series,我们可以使用(等待)time
函数提取“时间”部分 :-)
time(sunspot.month)
# Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
# 1749 1749 1749 1749 1749 1749 1749 1750 1750 1750 1750 1750 1750
# 1750 1750 1750 1750 1750 1750 1750 1750 1751 1751 1751 1751 1751
# 1751 1751 1751 1751 1751 1751 1751 1752 1752 1752 1752 1752 1752
# 1752 1752 1752 1752 1752 1752 1752 1752 1753 1753 1753 1753 1753
# ...
如果你仔细看一下数据,“时间”值是小数年,
options(digits=9)
head(time(sunspot.month))
# [1] 1749.00000 1749.08333 1749.16667 1749.25000 1749.33333 1749.41667
我们可以通过使用模数 1 (%% 1
) 从中提取“仅月份”,这将为我们提供一个从 0 开始的数组。从那里,我们可以 table
它来获取每个月的计数,然后 @user438383 建议,呈现一个条形图。
此外,为了标记月份,我们可以使用 base::month.abb
常量。
barplot(table(as.integer(1+12*(time(sunspot.month) %% 1))),
names.arg=month.abb)
我是编程新手,如果这是一个已经回答了很多次的基本问题,我很抱歉。我正在尝试绘制一个直方图,该直方图在 X 轴上有月份,在 Y 轴上有太阳黑子的数量。为了获取数据,我正在使用统计库。
x <- datasets::sunspot.month
h <- hist(x, breaks=12, col="red", xlab="Month", main="Histogram with Normal Curve")
这是我目前拥有的代码,我得到了一些奇怪的结果(可能是错误的结果),关于我应该尝试什么的任何建议?
P.S。你可以忽略名义曲线,一旦我做对了,我会尝试自己做。
How the data looks like
因为它是一个 time-series,我们可以使用(等待)time
函数提取“时间”部分 :-)
time(sunspot.month)
# Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
# 1749 1749 1749 1749 1749 1749 1749 1750 1750 1750 1750 1750 1750
# 1750 1750 1750 1750 1750 1750 1750 1750 1751 1751 1751 1751 1751
# 1751 1751 1751 1751 1751 1751 1751 1752 1752 1752 1752 1752 1752
# 1752 1752 1752 1752 1752 1752 1752 1752 1753 1753 1753 1753 1753
# ...
如果你仔细看一下数据,“时间”值是小数年,
options(digits=9)
head(time(sunspot.month))
# [1] 1749.00000 1749.08333 1749.16667 1749.25000 1749.33333 1749.41667
我们可以通过使用模数 1 (%% 1
) 从中提取“仅月份”,这将为我们提供一个从 0 开始的数组。从那里,我们可以 table
它来获取每个月的计数,然后 @user438383 建议,呈现一个条形图。
此外,为了标记月份,我们可以使用 base::month.abb
常量。
barplot(table(as.integer(1+12*(time(sunspot.month) %% 1))),
names.arg=month.abb)