获得一个全黑背景的条形图
Getting a barplot with a fully dark background
我正在尝试在 R 中获取条形图来表示 csv 文件中目标变量的出现次数。但是,我得到的输出条形图是一张全黑的图片,中间有线条。图形是怎么回事,我该如何解决这个问题?谢谢
这里是绘图和数据结构的示例
barplot
dput
dput(head(organics.df,5))
structure(list(ID = c(140L, 620L, 868L, 1120L, 2313L), DemAffl = c(10L,
4L, 5L, 10L, 11L), DemAge = c(76L, 49L, 70L, 65L, 68L), DemCluster = c(16L,
35L, 27L, 51L, 4L), DemClusterGroup = c("C", "D", "D", "F", "A"
), DemGender = c("U", "U", "F", "M", "F"), DemReg = c("Midlands",
"Midlands", "Midlands", "Midlands", "Midlands"), DemTVReg = c("Wales & West",
"Wales & West", "Wales & West", "Midlands", "Midlands"), PromClass = c("Gold",
"Gold", "Silver", "Tin", "Tin"), PromSpend = c(16000, 6000, 0.02,
0.01, 0.01), PromTime = c(4L, 5L, 8L, 7L, 8L), TargetBuy = c(0L,
0L, 1L, 1L, 0L), TargetAmt = c(0L, 0L, 1L, 1L, 0L)), row.names = c(NA,
5L), class = "data.frame")
您的条形图代码运行正常;由于您绘制的变量是二进制的,因此白色条纹很有可能位于目标变量为“0”的位置。当数据框有大量行时,R 的 barplot() 函数将删除大部分传统格式,使每一列成为一条黑线。
此外,当仅将单行数据传递到 barplot(具有两个轴的可视化)时,它会自动使 x 轴成为数据的索引,而 y 轴成为实际数据值。
您的代码行 barplot(organics.df$TargetBuy) 将生成一个条形图,其中您的 x 轴是数据框中某个值的 index/position,而 y 轴是该值。在这种情况下,您的值似乎在 0-1 范围内,其中 0 显示为白色直线和黑色长方形,代表数据框的大部分,其中您的图形变量为 1。
给定 1 和 0 的数据帧,这将使您的图表看起来像这样:
这是只有 15 个观测值的图表。将其增加到几千,它看起来与您提交的图片非常相似。
要回答您最初的问题,如果您想要一个条形图来显示每种类型的出现次数,请使用此代码:
counts <- table(organics.df$TargetBuy)
barplot(counts, main= "number of yes/no", xlab = "response", ylab = "number of occurrences")
你应该得到一个类似这样的图表:
我正在尝试在 R 中获取条形图来表示 csv 文件中目标变量的出现次数。但是,我得到的输出条形图是一张全黑的图片,中间有线条。图形是怎么回事,我该如何解决这个问题?谢谢
这里是绘图和数据结构的示例
barplot dput
dput(head(organics.df,5))
structure(list(ID = c(140L, 620L, 868L, 1120L, 2313L), DemAffl = c(10L,
4L, 5L, 10L, 11L), DemAge = c(76L, 49L, 70L, 65L, 68L), DemCluster = c(16L,
35L, 27L, 51L, 4L), DemClusterGroup = c("C", "D", "D", "F", "A"
), DemGender = c("U", "U", "F", "M", "F"), DemReg = c("Midlands",
"Midlands", "Midlands", "Midlands", "Midlands"), DemTVReg = c("Wales & West",
"Wales & West", "Wales & West", "Midlands", "Midlands"), PromClass = c("Gold",
"Gold", "Silver", "Tin", "Tin"), PromSpend = c(16000, 6000, 0.02,
0.01, 0.01), PromTime = c(4L, 5L, 8L, 7L, 8L), TargetBuy = c(0L,
0L, 1L, 1L, 0L), TargetAmt = c(0L, 0L, 1L, 1L, 0L)), row.names = c(NA,
5L), class = "data.frame")
您的条形图代码运行正常;由于您绘制的变量是二进制的,因此白色条纹很有可能位于目标变量为“0”的位置。当数据框有大量行时,R 的 barplot() 函数将删除大部分传统格式,使每一列成为一条黑线。
此外,当仅将单行数据传递到 barplot(具有两个轴的可视化)时,它会自动使 x 轴成为数据的索引,而 y 轴成为实际数据值。
您的代码行 barplot(organics.df$TargetBuy) 将生成一个条形图,其中您的 x 轴是数据框中某个值的 index/position,而 y 轴是该值。在这种情况下,您的值似乎在 0-1 范围内,其中 0 显示为白色直线和黑色长方形,代表数据框的大部分,其中您的图形变量为 1。
给定 1 和 0 的数据帧,这将使您的图表看起来像这样:
这是只有 15 个观测值的图表。将其增加到几千,它看起来与您提交的图片非常相似。
要回答您最初的问题,如果您想要一个条形图来显示每种类型的出现次数,请使用此代码:
counts <- table(organics.df$TargetBuy)
barplot(counts, main= "number of yes/no", xlab = "response", ylab = "number of occurrences")
你应该得到一个类似这样的图表: