Search

Travel Tips

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Lifestyle

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Hotel Review

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Python数据可视化——sraborn

分布数据可视化,散点图综合散点图,矩阵散点图

分布数据可视化 - 散点图


# 1、综合散点图 - jointplot()

# 散点图 + 分布图


rs = np.random.RandomState(2)  
df = pd.DataFrame(rs.randn(200,2),columns = ['A','B'])
# 创建数据
sns.jointplot(x=df['A'], y=df['B'],  # 设置xy轴,显示columns名称
              data=df,   # 设置数据
              color = 'k',   # 设置颜色
              s = 50, edgecolor="w",linewidth=1,  # 设置散点大小、边缘线颜色及宽度(只针对scatter)
              kind = 'scatter',   # 设置类型:“scatter”、“reg”、“resid”、“kde”、“hex”
              space = 0.2,  # 设置散点图和布局图的间距
              size = 8,   # 图表大小(自动调整为正方形)
              ratio = 5,  # 散点图与布局图高度比,整型
              marginal_kws=dict(bins=15, rug=True)  # 设置柱状图箱数,是否设置rug
              )

image.png

# 1、综合散点图 - jointplot()

# 散点图 + 分布图

# 六边形图  蜂窝图


df = pd.DataFrame(rs.randn(500,2),columns = ['A','B'])
# 创建数据
with sns.axes_style("white"):
    sns.jointplot(x=df['A'], y=df['B'],data = df, kind="hex", color="k",
                 marginal_kws=dict(bins=20))

image.png

# 1、综合散点图 - jointplot()

# 散点图 + 分布图

# 密度图


rs = np.random.RandomState(15)
df = pd.DataFrame(rs.randn(300,2),columns = ['A','B'])
# 创建数据
g = sns.jointplot(x=df['A'], y=df['B'],data = df,
                  kind="kde", color="k",
                  shade_lowest=False)
# 创建密度图
g.plot_joint(plt.scatter,c="w", s=30, linewidth=1, marker="+")
# 添加散点图

image.png

# 1、综合散点图 - JointGrid()

# 可拆分绘制的散点图

# plot_joint() + ax_marg_x.hist() + ax_marg_y.hist()


sns.set_style("white")
# 设置风格
tips = sns.load_dataset("tips")
print(tips.head())
# 导入数据

image.png

g = sns.JointGrid(x="total_bill", y="tip", data=tips)
# 创建一个绘图表格区域,设置好x、y对应数据
g.plot_joint(plt.scatter, color ='m', edgecolor = 'white')  # 设置框内图表,scatter
g.ax_marg_x.hist(tips["total_bill"], color="b", alpha=.6,
                 bins=np.arange(0, 60, 3))            # 设置x轴直方图,注意bins是数组
g.ax_marg_y.hist(tips["tip"], color="r", alpha=.6,
                 orientation="horizontal",
                 bins=np.arange(0, 12, 1))            # 设置x轴直方图,注意需要orientation参数
from scipy import stats
g.annotate(stats.pearsonr)    
# 设置标注,可以为pearsonr,spearmanr
plt.grid(linestyle = '--')


image.png

# 1、综合散点图 - JointGrid()

# 可拆分绘制的散点图

# plot_joint() + plot_marginals()


g = sns.JointGrid(x="total_bill", y="tip", data=tips)
# 创建一个绘图表格区域,设置好x、y对应数据
g = g.plot_joint(plt.scatter,color="g", s=40, edgecolor="white")   # 绘制散点图
plt.grid(linestyle = '--')
g.plot_marginals(sns.distplot, kde=True, color="g")                # 绘制x,y轴直方图

image.png

# 1、综合散点图 - JointGrid()

# 可拆分绘制的散点图

# plot_joint() + plot_marginals()

# kde - 密度图


g = sns.JointGrid(x="total_bill", y="tip", data=tips)
# 创建一个绘图表格区域,设置好x、y对应数据
g = g.plot_joint(sns.kdeplot,cmap = 'Reds_r')             # 绘制密度图
plt.grid(linestyle = '--')
g.plot_marginals(sns.kdeplot, shade = True, color="r")  # 绘制x,y轴密度图

image.png

# 2、矩阵散点图 - pairplot()


sns.set_style("white")
# 设置风格
iris = sns.load_dataset("iris")
print(iris.head())
# 读取数据

image.png

sns.pairplot(iris,
            kind = 'reg',  # 散点图/回归分布图 {‘scatter’, ‘reg’}  
            diag_kind="hist",  # 直方图/密度图 {‘hist’, ‘kde’}
            hue="species",   # 按照某一字段进行分类
            palette="husl",  # 设置调色板
            markers=["o", "s", "D"],  # 设置不同系列的点样式(这里根据参考分类个数)
            size = 2,   # 图表大小
            )

image.png

# 2、矩阵散点图 - pairplot()

# 只提取局部变量进行对比


sns.pairplot(iris,vars=["sepal_width", "sepal_length"],
             kind = 'reg', diag_kind="kde", 
             hue="species", palette="husl")

image.png

# 2、矩阵散点图 - pairplot()

# 其他参数设置

sns.pairplot(iris, diag_kind="kde", markers="+",
             plot_kws=dict(s=50, edgecolor="b", linewidth=1),
             # 设置点样式
             diag_kws=dict(shade=True)
             # 设置密度图样式
            )

image.png

# 2、矩阵散点图 - PairGrid()

# 可拆分绘制的散点图
# map_diag() + map_offdiag()


g = sns.PairGrid(iris,hue="species",palette = 'hls',
                vars = ['sepal_length','sepal_width','petal_length','petal_width'],  # 可筛选
                )
# 创建一个绘图表格区域,设置好x、y对应数据,按照species分类
g.map_diag(plt.hist, 
           histtype = 'barstacked',   # 可选:'bar', 'barstacked', 'step', 'stepfilled'
           linewidth = 1, edgecolor = 'w')           
# 对角线图表,plt.hist/sns.kdeplot
g.map_offdiag(plt.scatter,
              edgecolor="w", s=40,linewidth = 1,   # 设置点颜色、大小、描边宽度
             )     
# 其他图表,plt.scatter/plt.bar...
g.add_legend()
# 添加图例

image.png

# 2、矩阵散点图 - PairGrid()

# 可拆分绘制的散点图

# map_diag() + map_lower() + map_upper()


g = sns.PairGrid(iris)
g.map_diag(sns.kdeplot, lw=3)   # 设置对角线图表
g.map_upper(plt.scatter, color = 'r')     # 设置对角线上端图表
g.map_lower(sns.kdeplot, cmap="Blues_d")      # 设置对角线下端图表

image.png

这是一个简介
    互联网冲浪金牌选手。赖床世锦赛纪录保持者,拖延俱乐部顶级VIP,夜宵外卖一级鉴赏师,国家脱单脱贫重点扶持对象,中央戏精学院优秀学生,亚洲酸柠檬推广大使,国家一级退堂鼓表演艺术家。
评论 (125)
评论

我是 s enim interduante quis metus. Duis porta ornare nulla ut bibendum

Rosie

6 minutes ago

Sed ac lorem felis. Ut in odio lorem. Quisque magna dui, maximus ut commodo sed, vestibulum ac nibh. Aenean a tortor in sem tempus auctor

Agatha Christie

December 4, 2020 at 3:12 pm

Sed ac lorem felis. Ut in odio lorem. Quisque magna dui, maximus ut commodo sed, vestibulum ac nibh. Aenean a tortor in sem tempus auctor

Steven

December 4, 2020 at 3:12 pm

Donec in ullamcorper quam. Aenean vel nibh eu magna gravida fermentum. Praesent eget nisi pulvinar, sollicitudin eros vitae, tristique odio.

Danielle Steel

December 4, 2020 at 3:12 pm