• 吴裕雄--天生自然 R语言数据可视化绘图(2)


    par(ask=TRUE)
    opar <- par(no.readonly=TRUE) # save original parameter settings
    
    library(vcd)
    counts <- table(Arthritis$Improved)
    counts

    # Listing 6.1 - Simple bar plot
    # vertical barplot
    barplot(counts,
    main="Simple Bar Plot",
    xlab="Improvement", ylab="Frequency")
    # horizontal bar plot
    barplot(counts,
    main="Horizontal Bar Plot",
    xlab="Frequency", ylab="Improvement",
    horiz=TRUE)

    # obtain 2-way frequency table
    library(vcd)
    counts <- table(Arthritis$Improved, Arthritis$Treatment)
    counts
    
    
    # Listing 6.2 - Stacked and grouped bar plots 
    # stacked barplot
    barplot(counts, 
            main="Stacked Bar Plot",
            xlab="Treatment", ylab="Frequency", 
            col=c("red", "yellow","green"),            
            legend=rownames(counts)) 

    # grouped barplot                       
    barplot(counts, 
            main="Grouped Bar Plot", 
            xlab="Treatment", ylab="Frequency",
            col=c("red", "yellow", "green"),
            legend=rownames(counts), beside=TRUE)

    # Listing 6.3 - Bar plot for sorted mean values
    states <- data.frame(state.region, state.x77)
    means <- aggregate(states$Illiteracy, by=list(state.region), FUN=mean)
    means
    
    means <- means[order(means$x),]  
    means
    
    barplot(means$x, names.arg=means$Group.1) 
    title("Mean Illiteracy Rate")  

    # Listing 6.3 - Bar plot for sorted mean values
    states <- data.frame(state.region, state.x77)
    means <- aggregate(states$Illiteracy, by=list(state.region), FUN=mean)
    means
    
    means <- means[order(means$x),]  
    means
    
    barplot(means$x, names.arg=means$Group.1) 
    title("Mean Illiteracy Rate")  

    # Listing 6.4 - Fitting labels in bar plots
    par(las=2)                # set label text perpendicular to the axis
    par(mar=c(5,8,4,2))       # increase the y-axis margin
    counts <- table(Arthritis$Improved) # get the data for the bars
    
    # produce the graph
    barplot(counts, 
            main="Treatment Outcome", horiz=TRUE, cex.names=0.8,
            names.arg=c("No Improvement", "Some Improvement", "Marked Improvement")
    )
    par(opar)

    # Spinograms
    library(vcd)
    attach(Arthritis)
    counts <- table(Treatment,Improved)
    spine(counts, main="Spinogram Example")
    detach(Arthritis)

    # Listing 6.5 - Pie charts
    par(mfrow=c(2,2))                             
    slices <- c(10, 12,4, 16, 8) 
    lbls <- c("US", "UK", "Australia", "Germany", "France")
    
    pie(slices, labels = lbls, 
        main="Simple Pie Chart")

    pct <- round(slices/sum(slices)*100)                      
    lbls <- paste(lbls, pct) 
    lbls <- paste(lbls,"%",sep="")
    pie(slices,labels = lbls, col=rainbow(length(lbls)),
        main="Pie Chart with Percentages")

    library(plotrix)                                               
    pie3D(slices, labels=lbls,explode=0.1,
          main="3D Pie Chart ")
    
    mytable <- table(state.region)                                   
    lbls <- paste(names(mytable), "
    ", mytable, sep="")
    pie(mytable, labels = lbls, 
        main="Pie Chart from a dataframe
     (with sample sizes)")
    
    par(opar)
    mytable <- table(state.region)                                   
    lbls <- paste(names(mytable), "
    ", mytable, sep="")
    pie(mytable, labels = lbls, 
        main="Pie Chart from a dataframe
     (with sample sizes)")
    
    par(opar)

    # Fan plots
    library(plotrix)
    slices <- c(10, 12,4, 16, 8) 
    lbls <- c("US", "UK", "Australia", "Germany", "France")   
    fan.plot(slices, labels = lbls, main="Fan Plot")

    # Listing 6.6 - Histograms
    # simple histogram                                                        1
    hist(mtcars$mpg)

    # colored histogram with specified number of bins        
    hist(mtcars$mpg, 
         breaks=12, 
         col="red", 
         xlab="Miles Per Gallon", 
         main="Colored histogram with 12 bins")

    # colored histogram with rug plot, frame, and specified number of bins 
    hist(mtcars$mpg, 
         freq=FALSE, 
         breaks=12, 
         col="red", 
         xlab="Miles Per Gallon", 
         main="Histogram, rug plot, density curve")  
    rug(jitter(mtcars$mpg)) 
    lines(density(mtcars$mpg), col="blue", lwd=2)

    # histogram with superimposed normal curve (Thanks to Peter Dalgaard)  
    x <- mtcars$mpg 
    h<-hist(x, 
            breaks=12, 
            col="red", 
            xlab="Miles Per Gallon", 
            main="Histogram with normal curve and box") 
    xfit<-seq(min(x),max(x),length=40) 
    yfit<-dnorm(xfit,mean=mean(x),sd=sd(x)) 
    yfit <- yfit*diff(h$mids[1:2])*length(x) 
    lines(xfit, yfit, col="blue", lwd=2)
    box()
    # Listing 6.6 - Histograms
    # simple histogram                                                        1
    hist(mtcars$mpg)
    
    # colored histogram with specified number of bins        
    hist(mtcars$mpg, 
         breaks=12, 
         col="red", 
         xlab="Miles Per Gallon", 
         main="Colored histogram with 12 bins")
    
    # colored histogram with rug plot, frame, and specified number of bins 
    hist(mtcars$mpg, 
         freq=FALSE, 
         breaks=12, 
         col="red", 
         xlab="Miles Per Gallon", 
         main="Histogram, rug plot, density curve")  
    rug(jitter(mtcars$mpg)) 
    lines(density(mtcars$mpg), col="blue", lwd=2)
    
    # histogram with superimposed normal curve (Thanks to Peter Dalgaard)  
    x <- mtcars$mpg 
    h<-hist(x, 
            breaks=12, 
            col="red", 
            xlab="Miles Per Gallon", 
            main="Histogram with normal curve and box") 
            
    xfit<-seq(min(x),max(x),length=40) 
    yfit<-dnorm(xfit,mean=mean(x),sd=sd(x)) 
    yfit <- yfit*diff(h$mids[1:2])*length(x) 
    lines(xfit, yfit, col="blue", lwd=2)
    box()

    # Listing 6.7 - Kernel density plot
    d <- density(mtcars$mpg) # returns the density data  
    plot(d) # plots the results 

    d <- density(mtcars$mpg)                                  
    plot(d, main="Kernel Density of Miles Per Gallon")       
    polygon(d, col="red", border="blue")                     
    rug(mtcars$mpg, col="brown") 

    # Listing 6.8 - Comparing kernel density plots
    par(lwd=2)                                                       
    library(sm)
    attach(mtcars)
    
    # create value labels 
    cyl.f <- factor(cyl, levels= c(4, 6, 8),                               
                    labels = c("4 cylinder", "6 cylinder", "8 cylinder")) 
    
    # plot densities 
    sm.density.compare(mpg, cyl, xlab="Miles Per Gallon")                
    title(main="MPG Distribution by Car Cylinders")

    # add legend via mouse click
    colfill<-c(2:(2+length(levels(cyl.f)))) 
    cat("Use mouse to place legend...","
    
    ")
    legend(locator(1), levels(cyl.f), fill=colfill) 
    detach(mtcars)
    par(lwd=1)

    # parallel box plots
    boxplot(mpg~cyl,data=mtcars,
            main="Car Milage Data", 
            xlab="Number of Cylinders", 
            ylab="Miles Per Gallon")

    # notched box plots
    boxplot(mpg~cyl,data=mtcars, 
            notch=TRUE, 
            varwidth=TRUE,
            col="red",
            main="Car Mileage Data", 
            xlab="Number of Cylinders", 
            ylab="Miles Per Gallon")

    # Listing 6.9 - Box plots for two crossed factors
    # create a factor for number of cylinders
    mtcars$cyl.f <- factor(mtcars$cyl,
    levels=c(4,6,8),
    labels=c("4","6","8"))

    # create a factor for transmission type
    mtcars$am.f <- factor(mtcars$am,
    levels=c(0,1),
    labels=c("auto","standard"))

    # generate boxplot
    boxplot(mpg ~ am.f *cyl.f,
    data=mtcars,
    varwidth=TRUE,
    col=c("gold", "darkgreen"),
    main="MPG Distribution by Auto Type",
    xlab="Auto Type")

    # Listing 6.10 - Violin plots
    
    library(vioplot)
    x1 <- mtcars$mpg[mtcars$cyl==4] 
    x2 <- mtcars$mpg[mtcars$cyl==6]
    x3 <- mtcars$mpg[mtcars$cyl==8]
    vioplot(x1, x2, x3, 
            names=c("4 cyl", "6 cyl", "8 cyl"), 
            col="gold")
    title("Violin Plots of Miles Per Gallon")

    # dot chart
    dotchart(mtcars$mpg,labels=row.names(mtcars),cex=.7,
             main="Gas Mileage for Car Models", 
             xlab="Miles Per Gallon")

    # Listing 6.11 - Dot plot grouped, sorted, and colored
    x <- mtcars[order(mtcars$mpg),]                      
    x$cyl <- factor(x$cyl)                                 
    x$color[x$cyl==4] <- "red"                              
    x$color[x$cyl==6] <- "blue"
    x$color[x$cyl==8] <- "darkgreen" 
    dotchart(x$mpg,
             labels = row.names(x),                               
             cex=.7, 
             pch=19,                                              
             groups = x$cyl,                                       
             gcolor = "black",
             color = x$color,
             main = "Gas Mileage for Car Models
    grouped by cylinder",
             xlab = "Miles Per Gallon")

  • 相关阅读:
    关于 a 标签 jquery的trigger("click"),无法触发问题。
    浏览器上传文件,存到oracle数据库示例。
    关于java的Long 类型到js丢失精度的问题
    java 自定义注解,并使用示例
    关于重置功能(type="reset")的相关问题
    校验键盘上中英文状态下所有的特殊字符(排除下划线所在的按键)
    VS Code 设置取消打开文件目录的自动定位跟踪功能。
    $.extend(x,y); 函数用法介绍。
    用jquery的.val() 给具有style="display:none;" 属性的标签写值的问题。
    10.我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。 请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
  • 原文地址:https://www.cnblogs.com/tszr/p/11200250.html
Copyright © 2020-2023  润新知