ggplot2 绘图

# 保存最近一次生成的图片
ggsave('priceHistogram.png')
# ggsave currently recognises the extensions eps/ps, tex (pictex),
# pdf, jpeg, tiff, png, bmp, svg and wmf (windows only).

facet_wrap(formula)
facet_wrap(~variable)

facet_grid(formula)
facet_grid(vertical ~ horizontal)

# 方法一
pf <- read.csv('pseudo_facebook.tsv', sep = '\t')
# 方法二
pf <- read.delim('pseudo_facebook.tsv')

# 分面处理
qplot(x=dob_day, data=pf) + 
  scale_x_continuous(breaks = 1:31) +
  facet_wrap(~dob_month, ncol = 3)

这里写图片描述

# 限制x轴:方法一
qplot(x=friend_count, data=pf, xlim=c(0, 1000))

# 方法二
qplot(x=friend_count, data=pf) +
  scale_x_continuous(limits = c(0, 1000))

这里写图片描述

# 设置每组的宽度
qplot(x = friend_count, data = pf, binwidth = 10) +
  scale_x_continuous(limits = c(0, 1000),
                     breaks = seq(0, 1000, 50))

这里写图片描述

# 按照性别拆分直方图
qplot(x = friend_count, data = pf, binwidth = 10) +
  scale_x_continuous(limits = c(0, 1000), breaks = seq(0, 1000, 50)) +
  facet_wrap(~gender)

这里写图片描述

# 删除 NA Values
qplot(x = friend_count, data=subset(pf, !is.na(gender)), binwidth = 10) +
  scale_x_continuous(limits = c(0, 1000), breaks = seq(0, 1000, 50)) + 
  facet_wrap(~gender)

这里写图片描述

# 按照性别统计 friend 平均值
> by(pf$friend_count, pf$gender, summary)
pf$gender: female
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      0      37      96     242     244    4923 
--------------------------------------------------------- 
pf$gender: male
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
      0      27      74     165     182    4917

分析:女性的平均 friend_count 要高于男性,不管是中位数还是均值都大于男性。应该注意,中位数 指标比 均值 指标更可靠、稳定:因为friend_count 是右偏的,当右侧有很离谱的 friend_count 时,均值很容易会被拉向右方,而中位数却不受影响。

> summary(pf$tenure)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
    0.0   226.0   412.0   537.9   675.0  3139.0       2 

# 设置颜色
qplot(x = tenure, data = pf,
      color = I('black'), fill = I('#099dd9'))

这里写图片描述

# create a histogram of tenure by year
qplot(x = tenure/365, data = pf, binwidth = .25, 
      color = I('black'), fill = I('#f79420')) + 
  scale_x_continuous(breaks = seq(0, 7, 1), limits = c(0, 7))

这里写图片描述

# 增加x轴,y轴标签
qplot(x = tenure/365, data = pf, binwidth = .25,
      xlab = 'Number of years using Facebook',
      ylab = 'Number of users in sample',
      color = I('black'), fill = I('#f79420')) + 
  scale_x_continuous(breaks = seq(0, 7, 1), limits = c(0, 7))

这里写图片描述

> summary(pf$age)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  13.00   20.00   28.00   37.28   50.00  113.00 

# 绘制年龄直方图
qplot(x=age, data = pf, binwidth = 1,
      color=I('black'), fill=I('#5760ab')) +
  scale_x_continuous(breaks = seq(0, 113, 5))

这里写图片描述

# 分面时,使y轴按需要调节
qplot(x = price, data = diamonds) + facet_wrap(~cut, scales = "free") 

这里写图片描述

# 分面时,使y轴按需要调节,对横坐标轴进行对数转换
# 对于长尾分布,你可以添加一个 ggplot 图层(如:scale_x_log10())来转换变量。
qplot(x = price/carat, data = diamonds) + 
  scale_x_log10() + 
  facet_wrap(~cut, scales = "free")

这里写图片描述

### 回答1: ggplot2是一个常用的R语言绘图包,通过它可以快速、美观地绘制统计图形。其基本操作包括建立绘图对象、定义数据源、设置图形属性等步骤。下面我们举例说明如何使用ggplot2绘图代码: 首先,要加载ggplot2包: ```R library(ggplot2) ``` 然后,导入数据源: ```R data(iris) ``` 假设我们现在需要绘制iris数据集中四个变量(Sepal.Length,Sepal.Width,Petal.Length和Petal.Width),采用不同颜色区分种类(Species)的散点图。我们可以按如下方法设置绘图对象: ```R p <- ggplot(data=iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species)) ``` 这里,我们使用ggplot函数创建绘图对象,并使用aes函数指定我们需要绘制的四个变量。其中,x和y分别对应x轴和y轴,color则指定了散点的颜色,颜色的种类由数据集中的Species变量决定。 接下来,我们可以添加散点图层(geom_point),定义点的大小和形状等属性: ```R p + geom_point(size=3, shape=21) ``` 这里,我们设置散点的大小为3,形状为21,即实心圆点。 最后,我们可以调整图形的坐标轴、子标题等其他属性: ```R p + geom_point(size=3, shape=21) + labs(title=&quot;Iris dataset&quot;, x=&quot;Sepal length&quot;, y=&quot;Sepal width&quot;, color=&quot;Species&quot;) + theme(plot.title = element_text(hjust = 0.5)) ``` 这里,我们添加了标题(title)、x轴标签(x)、y轴标签(y)和颜色注释(color),并通过theme函数调整了标题的位置(hjust=0.5表示水平居中)。最终得到了一张优美、规范的散点图。 ggplot2提供了丰富的绘图功能和灵活的语法,使得我们可以轻松实现多种类型的图形。学好ggplot2绘图代码,能够极大地提高我们的数据可视化效率和数据分析能力。 ### 回答2: ggplot2是R语言中用于数据可视化的一个包。它是基于数据层的、图层叠加的思想,使用简单直观的语法创建复杂的图形。下面介绍一段ggplot2绘图代码实现。 首先,需要加载ggplot2包,命令为library(ggplot2)。然后,我们需要准备数据,这里以某一品牌销售数据为例,代码为: ```r data <- data.frame( date = as.Date(c(&quot;2021-01-01&quot;, &quot;2021-02-01&quot;, &quot;2021-03-01&quot;, &quot;2021-04-01&quot;, &quot;2021-05-01&quot;)), sales = c(155, 100, 310, 258, 190), region = c(&quot;North&quot;, &quot;South&quot;, &quot;North&quot;, &quot;South&quot;, &quot;North&quot;) ) ``` 上述代码定义了一个数据框,其中有销售日期、销售额、销售区域三列数据。然后,我们使用ggplot函数定义图形对象,指定数据源data和美学映射aes: ```r ggplot(data, aes(x = date, y = sales, group = region, color = region)) + geom_line() + scale_x_date(date_labels = &quot;%b-%y&quot;) + labs(title = &quot;Monthly sales for a brand&quot;, x = &quot;Date&quot;, y = &quot;Sales&quot;, color = &quot;Region&quot;) ``` 上述代码中,我们绘制了一个折线图。geom_line函数指定了绘制线条,scale_x_date函数调整X轴为日期格式,并设置了日期格式。labs函数定义了图形的标题和坐标轴标签。 通过上述代码,我们可以使用ggplot2包创建复杂的图形,并实现数据的可视化。 ### 回答3: ggplot2是一款数据可视化工具,它可以通过一些代码来制作出优美的图形。首先需要安装ggplot2包,并调用该包。以绘制散点图为例,需要用到以下代码: ggplot(data = dataframe, mapping = aes(x = x_var, y = y_var)) +geom_point() 其中,dataframe是存储数据的框架,x_var和y_var是数据框架中对应的自变量和因变量。geom_point()指定了要绘制散点图。 如果想要添加更多图层,可以通过以下方法继续绘制其他元素: ggplot(data = dataframe, mapping = aes(x = x_var, y = y_var)) +geom_point() +geom_line() +theme_bw() 这里,加入了一条线(geom_line())和一个白色背景(theme_bw())。其他图层元素还包括:柱状图(geom_bar())、密度曲线(geom_density())等。除此之外,还可以添加标题、标签、颜色、调节坐标轴等等。 总之,ggplot2不仅使数据更加易于理解,还使绘图变得更加容易,同时也为数据分析带来了更大的灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值