好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

ggplot2

学习一时爽,一直学习一直爽

  Hello,大家好,我是 もうり,一个从无到有的技术+语言小白。

回忆复习

原文:https://blog.csdn.net/weixin_44510615/article/details/89579225

参考:https://blog.csdn.net/tanzuozhev/article/details/50822204

ggplot2 同时也是一个 R 包

ggplot2 的简介

pip 安装

ggplot2 是数据可视化的重要程序包,用于绘制各种高级统计图形。

ggplot2 命令的基本组成 具体来讲,在 ggplot2 程序包中,每一副图都是由若干组件组成的,这些组件包括:

data: 数据,必须为 data.frame。

coordinate system: 数据可视化,主要是在二维平面上表示数据的关系,所用坐标系一般为平面直角坐标,有时会用到极坐标、地图投影等。ggplot2 软件默认使用平面直角坐标。

geoms: 包括 geoms_开头的各种对象,用来绘制各种基本组件,包括点、线、面、多边形、柱状图、箱线图等。

aesthetics: 图形的美学特征,如颜色、形状、透明度、大小、分组等。

scales: 坐标轴的属性

stats: 统计变换。用于设定数据要进行的统计转换,例如平均值、中位数、记录数等。

facets: 描述如何将图形按照某一个或者几个因子(factors)不同水平(levels)用多个图形分开展示。

完整的 ggplot2 绘图命令, 总是以 ggplot() 开始。

ggplot() 及其参数奠定整个 ggplot2 图形的基础,最重要的两个参数为 data 和 mapping。

其中 data 必须为 data.frame 格式。mapping 参数要求数据通过 aes 函数进一步转换。

aes 是 aesthetic 的缩写。

在 aes 函数中,要输入的参数有 x, y, group, color, size 等。

aes 可以直接访问 data 参数所输入数据框的各列,从而直接控制图形的横坐标、纵坐标、分组以及各组的颜色、大小、透明度等等。

柱形图

from ggplot import *
p=ggplot(mpg,aes(x='hwy'))+geom_histogram()
print(p)

p=ggplot(mpg,aes(x='hwy',fill='factor(year)'))+geom_histogram(alpha=0.3,colour='black')print(p)

p=ggplot(aes(x='factor(cyl)'), data=mtcars) + geom_bar()
print(p)

p=ggplot(aes(x='factor(cyl)'), data=mtcars)+geom_bar(fill='blue',alpha=0.2,width=0.4)
print(p)

p=ggplot(aes(x='factor(cyl)'), data=mtcars)+geom_histogram(fill='blue',alpha=0.2)
print(p)

p=ggplot(aes(x='factor(cyl)', fill='factor(gear)'), data=mtcars) + \    geom_histogram()print(p)

import pandas as pdimport numpy as npdf = pd.DataFrame({    "x": np.random.normal(0, 10, 1000),    "y": np.random.normal(0, 10, 1000),    "z": np.random.normal(0, 10, 1000)})df = pd.melt(df)p=ggplot(aes(x='value', fill='variable', color='variable'), data=df) + \    geom_histogram(alpha=0.6)print(p)

import pandas as pd
import numpy as np
from ggplot import *
df = pd.DataFrame({
    "x": np.random.normal(0, 10, 1000),
    "y": np.random.normal(0, 10, 1000),
    "z": np.random.normal(0, 10, 1000)
})
df = pd.melt(df)
p=ggplot(aes(x='value', fill='variable'), data=df) + \
    geom_histogram()+facet_grid('variable',)
print(p)

折线图

import pandas as pd
import numpy as np
df = pd.DataFrame({
    "x": np.random.normal(0, 10, 1000),
    "y": np.random.normal(0, 10, 1000),
    "z": np.random.normal(0, 10, 1000)
})
df = pd.melt(df)
p=ggplot(aes(x='value', color='variable'), data=df) + \
    geom_density()
print(p)
q=ggplot(aes(x='value', color='variable', fill='variable'), data=df) + \
    geom_density(alpha=0.6)
print(q)

p=ggplot(mpg,aes(x='displ',y='hwy'))+geom_line(color='grey',size=2) 
print(p)

p=ggplot(mpg,aes(x='factor(displ)',y='hwy'))+geom_bar(stat='identity',width=0.8,fill='grey')
##stat='identity'是指不进行统计变换即hwy就是纵
#坐标值因为displ出现众多的重复值,所以分组更多,纵坐标值不断累加
#width为组距,fill为填充色
print(p)

p=ggplot(mpg,aes(x='displ'))+geom_bar(stat='density')
#一维密度,统计数量
print(p)

p=ggplot(mpg,aes(x='displ'))+geom_density()
#一维密度,统计数量
print(p)

p=ggplot(mpg,aes(x='displ',fill='fl'))+geom_histogram(binwidth=0.4,position='dodge')
#位置调整有问题
print(p)

p=ggplot(mpg,aes(x='displ'))+geom_histogram(fill='grey',binwidth=0.18,alpha=0.3)+geom_density(color='red',size=0.8)
print(p)

p=ggplot(mpg,aes(x='displ',color='factor(fl)'))+geom_density(size=0.5)+ylim(0,1)
print(p)

small=diamonds.sample(n=1000)
p=ggplot(aes(x='cut'),data=small)+geom_bar()+coord_flip()
print(p)

p=ggplot(aes(x='cyl'), data=mtcars)+geom_histogram(fill='blue',alpha=0.2)
print(p)

p=ggplot(aes(x='cyl'), data=mtcars)+geom_bar(fill='blue',alpha=0.2)
print(p)

p=ggplot(aes(x='pageviews'), data=pageviews) + \
    geom_histogram()
print(p)

查看更多关于ggplot2的详细内容...

  阅读:30次