R 轴不使用日期标签打印
我有一个多元数据集,其典型数据如下:R 轴不使用日期标签打印,r,plot,R,Plot,我有一个多元数据集,其典型数据如下: financials <- "A B C D E Dates 52730.1 104761.1 275296.1 569423.1 1136638.1 2013-12-2 77709 97940 275778 515095 1075166 2013-08-04 102734
financials <-
"A B C D E Dates
52730.1 104761.1 275296.1 569423.1 1136638.1 2013-12-2
77709 97940 275778 515095 1075166 2013-08-04
102734 71672 227017 482068 1011764 2013-03-17
96345 74035 240334 429026 998734 2012-10-28
98651 62305 236694 436948 962913 2012-06-10
78804 73568 242068 471640 945891 2012-01-22"
fData <- read.table(text = financials, header = TRUE)
然后我尝试了axis.Date函数,我得到一个错误,必须提供“origin”
axis.Date(side = 1, x = Labels, at = seq(1,12), format = "%m/%y", origin = "2011-07-03")
我需要的是:(1)12个日期标签“标签”,x轴上有12个刻度线,倾斜45度;(2)格式化y轴,以10万美元的刻度显示财务数据;(3)请帮助我理解我的错误
非常感谢。您可以尝试
ggplot
替代方案:
library(reshape2)
library(ggplot2)
library(scales)
df <- melt(fData)
df$Dates <- as.Date(df$Dates)
ggplot(data = df, aes(x = Dates, y = value, color = variable)) +
geom_point() +
geom_line() +
scale_x_date(breaks = date_breaks("2 month"),
labels = date_format("%Y-%m")) +
scale_y_continuous(labels = dollar,
breaks = seq(from = 100000, to = 1200000, by = 100000)) +
theme_classic() +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))
library(重塑2)
图书馆(GG2)
图书馆(比例尺)
df您可以尝试ggplot
替代方案:
library(reshape2)
library(ggplot2)
library(scales)
df <- melt(fData)
df$Dates <- as.Date(df$Dates)
ggplot(data = df, aes(x = Dates, y = value, color = variable)) +
geom_point() +
geom_line() +
scale_x_date(breaks = date_breaks("2 month"),
labels = date_format("%Y-%m")) +
scale_y_continuous(labels = dollar,
breaks = seq(from = 100000, to = 1200000, by = 100000)) +
theme_classic() +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))
library(重塑2)
图书馆(GG2)
图书馆(比例尺)
dfat=seq(1,12)
不起作用,因为日期存储为数字,1到12与内部表示的日期不匹配。参见例如轴(侧=1,at=标签)
和帮助?日期
:
日期表示为自1970-01-01以来的天数,带有
早期日期的负值
工作
但是,如果希望标签在基本图形中倾斜,我认为需要使用text()
和srt
:
text(Labels, par("usr")[3], srt = 45, adj = 1, labels = Labels, xpd = TRUE)
最后,使用format()
和big.mark=
格式化y标签:
axis(side = 2, at = pretty(as.matrix(fData[, -6])), labels = format(pretty(as.matrix(fData[, -6])), big.mark=","), las=1)
at=seq(1,12)
不起作用,因为日期存储为数字,并且1到12与内部表示的日期不匹配。参见例如轴(侧=1,at=标签)
和帮助?日期
:
日期表示为自1970-01-01以来的天数,带有
早期日期的负值
工作
但是,如果希望标签在基本图形中倾斜,我认为需要使用text()
和srt
:
text(Labels, par("usr")[3], srt = 45, adj = 1, labels = Labels, xpd = TRUE)
最后,使用format()
和big.mark=
格式化y标签:
axis(side = 2, at = pretty(as.matrix(fData[, -6])), labels = format(pretty(as.matrix(fData[, -6])), big.mark=","), las=1)
首先,创建不带轴的绘图(
axes=FALSE
):
您不能对x轴使用axis.Date
,因为您需要倾斜标签。您必须将标签的轴
(用于记号标记)和文本
组合在一起:此处使用格式
创建标签:
axis(side = 1, at = Labels, labels = FALSE)
text(x = Labels, y = par("usr")[3] - 70000, labels = format(Labels, "%m/%y"),
srt = 45, pos = 1, xpd = TRUE)
现在,您必须创建y轴。首先,我们需要一个记号位置向量(ticksY
)和一个标签向量(LabelsY
)。这些值采用指定的格式:
ticksY <- seq(0, max(range), 100000)
LabelsY <- paste("$", format(ticksY, scientific = FALSE, big.mark = ","))
axis(side = 2, at = ticksY, labels = LabelsY)
ticksY首先,创建没有轴的绘图(axes=FALSE
):
您不能对x轴使用axis.Date
,因为您需要倾斜标签。您必须将标签的轴
(用于记号标记)和文本
组合在一起:此处使用格式
创建标签:
axis(side = 1, at = Labels, labels = FALSE)
text(x = Labels, y = par("usr")[3] - 70000, labels = format(Labels, "%m/%y"),
srt = 45, pos = 1, xpd = TRUE)
现在,您必须创建y轴。首先,我们需要一个记号位置向量(ticksY
)和一个标签向量(LabelsY
)。这些值采用指定的格式:
ticksY <- seq(0, max(range), 100000)
LabelsY <- paste("$", format(ticksY, scientific = FALSE, big.mark = ","))
axis(side = 2, at = ticksY, labels = LabelsY)
ticksY我非常感谢lukeA、Sven Hohenstein和Henrik的技术知识和他们的时间。我非常感谢lukeA、Sven Hohenstein和Henrik的技术知识和他们的时间。Sven Hohenstein,代码运行良好,但我不明白我们如何使用y值设置x轴;票面价值(“usr”)[3]为y1。我也不明白你为什么在“y=par(“usr”)[3]-70000”中减去70000。谢谢again@RagyIsaacpar(“usr”)
返回打印区域的坐标。第三个值([3]
)是较低的y坐标。我减去70000
个单位来向下移动标签(否则它们会与轴重叠)。我很抱歉,是的,您正在设置y轴,我得到了它的Ven Hohenstein,代码运行良好,但我不明白我们如何使用y值来设置x轴;票面价值(“usr”)[3]为y1。我也不明白你为什么在“y=par(“usr”)[3]-70000”中减去70000。谢谢again@RagyIsaacpar(“usr”)
返回打印区域的坐标。第三个值([3]
)是较低的y坐标。我减去70000
个单位以向下移动标签(否则它们将与轴重叠)。我很抱歉,是的,您正在设置y轴,我知道了