电力公司:用R做两列不同数字的直方图和饼图以及趋势图

统计表内各行业分别有多少个?

1 直方图

setwd("E:/自己重要的文件/R语言个人分类总结/图书配套数据、代码/chapter6/示例程序")

# 设置工作空间

data_FB <- read.csv("./data/窃漏电用户分布分析.csv", header = TRUE)
Type <- table(data_FB[, 3])
p <- barplot(Type, space = 0, ylim=c(0, 30), col=rainbow(7),xaxt="n",ylab = "计数", main = "窃电用户用电类别分布分析")

# xaxt="n"设置是否显示x轴信息,axes=F不显示坐标轴

# 颜色可以用heat.colors,terrain.colors,cm.colors等

#space = 0,各条形组之间的距离

#ylim = c(0, 30)表示y轴坐标轴在0到30范围

df <- data.frame(Type)


axis(1, p, df$Var1, las = 2)

#axis 是“轴”的意思 ,在图下边(1指在下边)填上变量名字,如大工业,非工业...

text(p, Type, labels = Type,pos = 3)  # 添加数值标签

#在直方柱上添加数字,如23,5,6...

2.饼图

Type <- data.frame(Type)

pct <- round(Type$Freq / sum(Type$Freq) * 100, 1)

lbls <- paste0(Type$Var1, pct, "%")

pie(Type$Freq, labels = lbls)  # 普通饼图

library(plotrix)  # 3D饼图

pie3D(Type$Freq, labels = lbls, main = "窃电用户用电类别分布",

labelrad = 1.4, start = 3)


pie3D(Type$Freq, labels = lbls, explode = 0.1, radius = 1)

# radius半径,explode分离度

3 趋势图分析

日期日电量
2012/2/16200
2012/2/26440
2012/2/36440
2012/2/44293
   共59个数据。

Regular <- read.csv("./data/正常用电量数据.csv",header=T)

plot(1:59, Regular[, 2], type = "l", col = "blue", main = "正常用户的用电量趋势")  # 主标题,x,y轴标题 # 基础绘图


这是去掉1:59的结果。

    

Unusual <- read.csv("./data/窃电用电量数据.csv", header = T)

plot(Unusual[, 2], type = "l", col = "blue")  # 设置主标题,x,y轴标题

把两列数字放在一个图上比较

Regular <- read.csv("./data/正常用电量数据.csv",header=T)

Unusual <- read.csv("./data/窃电用电量数据.csv", header = T)

plot(Regular[,2], col = "blue", lty = 1, type = "l",

     main = "正常用户与窃电用户的用电趋势比较", ylim = c(0,8000),

     ylab = "用电量", xlab = "", xaxt = "n")  # axes = F

axis(1, at = 1:59, Regular[, 1], las = 2)  # 设置x轴

lines(Unusual[,2], col = "red", lty = 2, type = "l")  # 添加窃电数据

legend("bottomleft", legend = c("正常用户","窃电用户",

lty = 1:2, col = c("blue", "red"))  # 添加图例



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页