我的 R 条形图没有清楚地显示年销售额的差异

My R bar plot is not showing the difference in yearly sales clearly

成功 运行 我的条形图后,我有一个 问题,其中 y 轴上的数字是代码而不是完整的,而不是正常显示数字,它显示像 0e+00 这样的代码。

我希望 Y 轴显示在 102,000 到 106,000 之间。

条形图也有不同的数字。但是并没有清楚地显示年销售额的差异。

# Table of average total sales by year
yearly_sales <- DataSet %>% group_by(Year) %>% summarise(sales = mean(Weekly_Sales))
summarise(yearly_sales)
mycols <- c("#FF7F50", "#DE3163", "#6495ED")

# Bar chart for Average Yearly Sales 2010 to 2012
barplot(height = yearly_sales$sales, names = yearly_sales$Year, col = mycols)

此处显示条形图。

如何让图表清楚地显示销售额差异以及如何获得实际值而不是 0e+00

这可以使用 ylimxpd 来完成,但我提醒您以这种方式表示您的数据,因为它夸大了年份之间的真实差异并且是对数据可视化的普遍违反。你在问题中表示的数字更准确。

无论如何,如果你想这样做:

# Example data
data <- c(1033660, 1046239, 1059670)

# Plot, `a` saves the position of the x axis to place years text
a <- barplot(data, ylim = c(1020000, 1060000), xpd = FALSE, col = c("#FF7F50", "#DE3163", "#6495ED"))
axis(1, at = a, labels = c(2010, 2011, 2012), tick = FALSE)

ylim 设置限制并 xpd 剪裁下轴的悬垂。

暂时disabling scientific notation ,

op <- options(scipen=999)  ## set par
barplot(sales ~ Year, Yearly_sales, col=2:4)
par(op)  ## restore old par

formatCing.

barplot(sales ~ Year, data=Yearly_sales, col=2:4, yaxt='n')
axis(side=2, at=axTicks(2), labels=formatC(axTicks(2), format='fg'))

就像一样,我不喜欢缩小x-axis,因为这正是人们如何夸大他们的统计数据并给人以巨大差异的印象,而实际上它们很小,从而欺骗他们的读者。 请不要这样做

显示百分比差异可能更专业,例如与 2010 年的第一次测量相比。

Yearly_sales <- transform(Yearly_sales, 
                          diff=(sales - sales[Year == 2010])/sales[Year == 2010])

barplot(diff ~ Year, Yearly_sales, col=2:4, yaxt='n', ylim=c(-.04, 0))
axis(side=2, at=axTicks(2), labels=paste0(axTicks(2)*100, '%'))


数据:

Yearly_sales <- structure(list(sales = c(1033660, 1046239, 1059670), Year = 2012:2010, 
    diff = c(-0.0245453773344532, -0.0126747006143422, 0)), class = "data.frame", row.names = c(NA, 
-3L))