学习一时爽,一直学习一直爽
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 参数所输入数据框的各列,从而直接控制图形的横坐标、纵坐标、分组以及各组的颜色、大小、透明度等等。
柱形图
代码语言:javascript复制from ggplot import *
p=ggplot(mpg,aes(x='hwy')) geom_histogram()
print(p)
代码语言:javascript复制p=ggplot(mpg,aes(x='hwy',fill='factor(year)')) geom_histogram(alpha=0.3,colour='black')
print(p)
代码语言:javascript复制p=ggplot(aes(x='factor(cyl)'), data=mtcars) geom_bar()
print(p)
代码语言:javascript复制p=ggplot(aes(x='factor(cyl)'), data=mtcars) geom_bar(fill='blue',alpha=0.2,width=0.4)
print(p)
代码语言:javascript复制p=ggplot(aes(x='factor(cyl)'), data=mtcars) geom_histogram(fill='blue',alpha=0.2)
print(p)
代码语言:javascript复制p=ggplot(aes(x='factor(cyl)', fill='factor(gear)'), data=mtcars)
geom_histogram()
print(p)
代码语言:javascript复制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', fill='variable', color='variable'), data=df)
geom_histogram(alpha=0.6)
print(p)
代码语言:javascript复制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)
折线图
代码语言:javascript复制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)
代码语言:javascript复制p=ggplot(mpg,aes(x='displ',y='hwy')) geom_line(color='grey',size=2)
print(p)
代码语言:javascript复制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)
代码语言:javascript复制p=ggplot(mpg,aes(x='displ')) geom_bar(stat='density')
#一维密度,统计数量
print(p)
代码语言:javascript复制p=ggplot(mpg,aes(x='displ')) geom_density()
#一维密度,统计数量
print(p)
代码语言:javascript复制p=ggplot(mpg,aes(x='displ',fill='fl')) geom_histogram(binwidth=0.4,position='dodge')
#位置调整有问题
print(p)
代码语言:javascript复制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)
代码语言:javascript复制p=ggplot(mpg,aes(x='displ',color='factor(fl)')) geom_density(size=0.5) ylim(0,1)
print(p)
代码语言:javascript复制small=diamonds.sample(n=1000)
p=ggplot(aes(x='cut'),data=small) geom_bar() coord_flip()
print(p)
代码语言:javascript复制p=ggplot(aes(x='cyl'), data=mtcars) geom_histogram(fill='blue',alpha=0.2)
print(p)
代码语言:javascript复制p=ggplot(aes(x='cyl'), data=mtcars) geom_bar(fill='blue',alpha=0.2)
print(p)
代码语言:javascript复制p=ggplot(aes(x='pageviews'), data=pageviews)
geom_histogram()
print(p)