ggplot可视化

ggplot库的使用

  • ggplot 绘图
  • 几何图形层
  • 统计变化
  • 美化层
  • 绘制一个空白图
  • 绘制散点图
  • 绘制散点图并标记形状
  • 绘制折线图
  • 绘制直方图
  • 面积图
  • 条形图
  • 箱体图
  • 线性回归

ggplot 绘图

ggplot_pypi 0.11.5
简单的图层累加,越后面图层越高

数据层+几何图形层+美化层:
ggplot(data = , aes(x = , y = )) +
geom_XXX(…) + … + stat_XXX(…) + … +
annotate(…) + … + labs(…) +
scale_XXX(…) + coord_XXX(…) + guides(…) + theme(…) +
facet_XXX(…)

几何图形层

几何对象函数 描述
geom_abline 线图,由斜率和截距指定
geom_area 面积图(即连续的条形图)
geom_bar 条形图
geom_bin2d 二维封箱的热图
geom_blank 空的几何对象,什么也不画
geom_boxplot 箱线图
geom_contour 等高线图
geom_crossbar crossbar图(类似于箱线图,但没有触须和极值点)
geom_density 密度图
geom_density2d 二维密度图
geom_errorbar 误差线(通常添加到其他图形上,比如柱状图、点图、线图等)
geom_errorbarh 水平误差线
geom_freqpoly 频率多边形(类似于直方图)
geom_hex 六边形图(通常用于六边形封箱)
geom_histogram 直方图
geom_hline 水平线
geom_jitter 点、自动添加了扰动
geom_line 线
geom_linerange 区间,用竖直线来表示
geom_path 几何路径,由一组点按顺序连接
geom_point 点
geom_pointrange 一条垂直线,线的中间有一个点(与Crossbar图和箱线图相关,可以用来表示线的范围)
geom_polygon 多边形
geom_quantile 一组分位数线(来自分位数回归)
geom_rect 二维的长方形
geom_ribbon 彩虹图(在连续的x值上表示y的范围,例如Tufte著名的拿破仑远征图)
geom_rug 触须
geom_segment 线段
geom_smooth 平滑的条件均值
geom_step 阶梯图
geom_text 文本
geom_tile 瓦片(即一个个的小长方形或多边形)
geom_vline 竖直线

统计变化

统计变换函数 描述
stat_smooth 添加平滑曲线
stat_density 统计的密度

美化层

xlab,ylab 为x,y轴添加标签
labs,添加x,y标签和title
xlim,ylim 上下限

绘制一个空白图

import numpy as np
import pandas as pd
from ggplot import ggplot,aes

#数据帧
df = pd.DataFrame(np.arange(9).reshape(3,3),columns=["a","b","c"])

#ggplot 绘制图形
#数据层
data = ggplot(df,aes(x="a",y="b"))

#显示数据层
print(data)

ggplot可视化_第1张图片

绘制散点图

geom_point()

#数据帧
df = pd.DataFrame(np.arange(9).reshape(3,3),columns=["a","b","c"])

#ggplot 绘制图形
#数据层  color颜色渐变控制
#shape = '列' 控制点的形状
data = ggplot(df,aes(x="a",y="b",color="c"))

#几何图形层  散点
geom = geom_point()

#显示数据层+几何图形层
print(data+geom)

ggplot可视化_第2张图片

绘制散点图并标记形状

from ggplot import *
import numpy as np
import pandas as pd

df = pd.DataFrame(np.arange(9).reshape(3,3),columns=["a","b","shape"])
#指定一列字符串值,用于分配点的形状
df["shape"] = ["10","5","7"]
#画图
p = ggplot(df,aes(x="a",y="b",shape="shape"))+geom_point()+ggtitle("title")
print(p)

ggplot可视化_第3张图片

绘制折线图

geom_line()+
ggtitle(“xxx”)

#数据帧
df = pd.DataFrame(np.arange(9).reshape(3,3),columns=["a","b","c"])

#ggplot 绘制图形
#数据层  color颜色控制
data = ggplot(df,aes(x="a",y="b",color="factor(c)"))

#几何图形层
geom = geom_line()
#美化层
title = ggtitle("标题")

#显示数据层+几何图形层
print(data+geom)

ggplot可视化_第4张图片

绘制直方图

from ggplot import *
#使用内置的数据集
df = mpg
df = df.filter(["cty","hwy"])

#绘制直方图  图层累加
p = ggplot(df, aes(x='cty')) + \
    geom_histogram() + \
    xlab("City MPG (Miles per Gallon)") + \
    ylab("# of Obs")+ggtitle("直方图")  #需设置matplotlib才可以显示中文
print(p)

ggplot可视化_第5张图片

面积图

import numpy as np
import pandas as pd
from ggplot import *
from matplotlib import pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

#
df = pd.DataFrame(np.arange(9).reshape(3,3),columns=["a","b","c"])
#绘图
#geom_line?
p = ggplot(df, aes(x='a', y='b')) + \
geom_line(color="red",linetype="dashed",size=3)+geom_area()+ggtitle("面积图")+xlab("x")+ylab("y")
    
print(p)

ggplot可视化_第6张图片

条形图

#使用内置的数据集
print(mtcars["cyl"].value_counts())
#绘图条形图,统计series
p = ggplot(mtcars, aes(x='cyl')) + geom_bar(color="red",size=5,fill=None)\
    +labs(x="x",y="y",title="title") 
#color 边框颜色
#size 边框的宽度
#fill 内部填充的颜色 "red"/(0.2,0.3,0.5,0.7)rgba 会覆盖边框颜色    
#(0.4,0.8,0.3,0.6)
print(p)

ggplot可视化_第7张图片

箱体图

#使用内置数据mtcars
#cyl列为x轴,分组类别
#mpg列为y轴 真实数据
#以x轴的每个值对y 进行分组
#y的每一组 为series   画箱体图
p = ggplot(mtcars, aes(x='cyl', y='mpg')) + geom_boxplot()
print(p)

ggplot可视化_第8张图片

线性回归

p = ggplot(diamonds, aes(x='carat', y='price')) + \
geom_point(alpha=0.1,size=100,color='orange',edgecolors="r",shape="^") + \
    stat_smooth(method='lm') + \
    xlim(0, 5) + \
    ylim(0, 20000)
    
print(p)

出现如下异常:
ggplot可视化_第9张图片
解决办法:
改ggplot>stats>stat_smooth.py 的源码
smoothed_data.sort(“x”)–>smoothed_data.sort_values(“x”)

ggplot可视化_第10张图片

ggplot可视化_第11张图片

你可能感兴趣的:(可视化工具,数据可视化,ggplot,python)