四、r的資料視覺化
基礎繪圖包---lattice包
---ggplot2包
---其他圖形
1、具體目標
~探索型
~接受型
2、資料和受眾的特點
~哪些變數最重要
~受眾的角色
~合適的對映方式
對映的圖形元素
# 1、座標位置
# 2、線條
# 3、尺寸
# 4、色彩
# 5、形狀
# 6、文字
資料視覺化元素
graphics(自帶繪圖包 plot)
plot(cars$dist~cars$speed) #點圖
plot(cars$dist,type = 'l') #折線圖
plot(cars$dist,type='h') #線直方圖
hist(cars$dist) #直方圖
lattice包
library(lattice)
num <- sample(1:3,size=50,replace=t) #1-3隨機生成50次 有放回
barchart(table(num)) #barchart 柱形圖
qqmath(rnorm(100)) #qqmath 檢視資料是否符合正態分佈
關於分組
stripplot(~sepal.length|species,data = iris,layout=c(1,3))
#長度 和種類分布;點圖
densityplot(~sepal.length,groups = species,data=iris,
plot.points=f)
densityplot(~sepal.length|species,data=iris,
plot.points=f,
layout=c(1,3))
bwplot 箱線圖
bwplot(species~sepal.length,data = iris)
#兩個變數之間的關係
xyplot(sepal.width~sepal.length,groups = species,data=iris)
#splom兩個變數之間的關係
splom(iris[1:4])
histogram(~sepal.length | species,data=iris,
layout=c(1,3))
三維圖形
library(plyr)
func3d <- function(x,y)
vec1 <- vec2 <- seq(0,2,length=0)
para <- expand.grid(x=vec1,y=vec2)
result6 <- mdply(.data = para,.fun = func3d)
wireframe(v1~x*y,data=result6,scales = list(arrows = false),
drape = true, colorkey = f)
ggplot2包
library(ggplot2)
p <- ggplot(data = mpg, #內建mpg資料
print(p)
geom_point() 繪製散點圖
#基礎修改
p <- ggplot(data = mpg, #內建mpg資料
color=factor(year)))
p <- p + geom_point() #繪製散點圖
p
增加統計變換stat
p <- ggplot(data = mpg, #內建mpg資料
color=factor(year)))
p <- p + stat_smooth() #統計變換 做光滑曲線
p
在圖層layer中增加點和平滑線
p <- ggplot(data = mpg,
geom_point(aes(color=factor(year)))+
stat_smooth()
p <- ggplot(data = mpg,
geom_point()+
stat_smooth()
標度scale控制
geom_point(aes(colour=factor(year))) +
stat_smooth()+
scale_color_manual(values=c('blue2','red4')) #標度控制
分面face控制
geom_point(aes(colour=factor(year))) +
stat_smooth()+
scale_color_manual(values=c('blue2','red4'))+
facet_wrap(~ year,ncol=1)
精雕細琢
geom_point(aes(colour=class,size=displ),
alpha=0.5,position = "jitter")+
stat_smooth()+
scale_size_continuous(range = c(4, 10))+ #大小變化的範圍
facet_wrap(~ year,ncol=1)+ #
labs(title='汽車型號與油耗',
y='每加侖高速公路行駛距離',
x='每加侖城市公路行駛距離',
size='排量',
colour = '車型')
直方圖
library(ggplot2)
p <- ggplot(iris,aes(x=sepal.length))+
geom_histogram()
p
增加引數
p <- ggplot(iris,aes(x=sepal.length))+
geom_histogram(binwidth=0.1, # 設定組距
fill='skyblue', # 設定填充色
colour='black')+ # 設定邊框色
labs(title='大標題',
x='x軸',
y='y軸')
# 直方圖的作用主要是展現分組計數和分布特性,因為考查乙個樣本是否符合
# 某個分布在傳統統計學中有著重要的意義。
# 不過有另一種方法也可以展現資料的分布,即核密度估計曲線。
# 簡單來說就是根據資料估算一條可以代表其分布的密度曲線。
# 我們可以將直方圖和密度曲線重疊顯示。
直方圖加密度曲線
p <- ggplot(iris,aes(x=sepal.length)) +
geom_histogram(aes(y=..density..),
fill='skyblue',
color='black') +
stat_density(geom='line',color='red',
linetype=2,adjust=2)
# adjust引數和窗寬引數類似,它將會控制密度曲線的細節表現能力。我們來嘗試用不同的引數繪製多條密度曲線。可見引數越小曲線越為波動靈敏,adjuct負責控制這個引數。
p <- ggplot(iris,aes(x=sepal.length)) +
geom_histogram(aes(y=..density..), # 注意要將y設為相對頻數
fill='gray60',
color='gray') +
stat_density(geom='line',color='black',linetype=1,adjust=0.5)+
stat_density(geom='line',color='black',linetype=2,adjust=1)+
stat_density(geom='line',color='black',linetype=3,adjust=2)
密度曲線
密度曲線還方便對不同資料進行比較,例如我們要對iris中三種不同花的sepal.length分布進行比較,可以象下面一樣:
p <- ggplot(iris,aes(x=sepal.length,fill=species)) +
geom_density(alpha=0.5,color='gray')
print(p)
箱線圖
# 除了直方圖和密度圖,還可以用常見的箱線圖來表現一維資料的分布。箱線圖也方便各組資料之間的比較。
p <- ggplot(iris,aes(x=species,y=sepal.length,fill=species)) +
geom_boxplot()
print(p)
小提琴圖
# 與箱線圖類似是小提琴圖,它包含了更多關於資料分布的情況
p <- ggplot(iris,aes(x=species,y=sepal.length,fill=species)) +
geom_violin()
print(p)
Python資料分析學習筆記二
4 陣列的組合 numpy中的陣列組合有水平組合 垂直組合 深度組合和列組合等多種組合方式。使用hstack 函式可以完成陣列的水平拼接,例 import numpy as np a1 np.arange 9 reshape 3,3 print a1 a2 a1 2 print a2 b np.hs...
資料分析學習筆記
資料分析的常規步驟 1.確定問題 2.分解問題 3.評估問題 4.制定相應的決策 用一句話概括就是 現有的資料能否解決現在的問題,分析問題的瓶頸所在,評估分析的方式方法,找到最合理的資料分析方案進行實施。資料分析的模型沒有統一的模型,每乙個公司都有自己的業務線跟使用者群裡,使用者的屬性不同,行為軌跡...
資料分析學習筆記
row number over partition by col1 col2 order by col1 asc desc col2 asc desc 函式說明 可以用於開窗,排序,計數,返回當前視窗的排序值。引數說明 partition by col1 col2.指定開視窗的列。order by ...