python可视化分析绘制带趋势线的散点图和边缘直方图


Posted in Python onJune 25, 2022

一、绘制带趋势线的散点图

实现功能:

在散点图上添加趋势线(线性拟合线)反映两个变量是正相关、负相关或者无相关关系。

实现代码:

import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings(action='once')
plt.style.use('seaborn-whitegrid')
sns.set_style("whitegrid")
print(mpl.__version__)
print(sns.__version__)
def draw_scatter(file):
    # Import Data
    df = pd.read_csv(file)
    df_select = df.loc[df.cyl.isin([4, 8]), :]

    # Plot
    gridobj = sns.lmplot(
        x="displ",
        y="hwy",
        hue="cyl",
        data=df_select,
        height=7,
        aspect=1.6,
        palette='Set1',
        scatter_kws=dict(s=60, linewidths=.7, edgecolors='black'))
    # Decorations
    sns.set(style="whitegrid", font_scale=1.5)
    gridobj.set(xlim=(0.5, 7.5), ylim=(10, 50))
    gridobj.fig.set_size_inches(10, 6)
    plt.tight_layout()
    plt.title("Scatterplot with line of best fit grouped by number of cylinders")
    plt.show()
draw_scatter("F:\数据杂坛\datasets\mpg_ggplot2.csv")

实现效果:

python可视化分析绘制带趋势线的散点图和边缘直方图

在散点图上添加趋势线(线性拟合线)反映两个变量是正相关、负相关或者无相关关系。红蓝两组数据分别绘制出最佳的线性拟合线。

二、绘制边缘直方图

实现功能:

python绘制边缘直方图,用于展示X和Y之间的关系、及X和Y的单变量分布情况,常用于数据探索分析。

实现代码:

import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings(action='once')
plt.style.use('seaborn-whitegrid')
sns.set_style("whitegrid")
print(mpl.__version__)
print(sns.__version__)
def draw_Marginal_Histogram(file):
    # Import Data
    df = pd.read_csv(file)

    # Create Fig and gridspec
    fig = plt.figure(figsize=(10, 6), dpi=100)
    grid = plt.GridSpec(4, 4, hspace=0.5, wspace=0.2)
    # Define the axes
    ax_main = fig.add_subplot(grid[:-1, :-1])
    ax_right = fig.add_subplot(grid[:-1, -1], xticklabels=[], yticklabels=[])
    ax_bottom = fig.add_subplot(grid[-1, 0:-1], xticklabels=[], yticklabels=[])
    # Scatterplot on main ax
    ax_main.scatter('displ',
                    'hwy',
                    s=df.cty * 4,
                    c=df.manufacturer.astype('category').cat.codes,
                    alpha=.9,
                    data=df,
                    cmap="Set1",
                    edgecolors='gray',
                    linewidths=.5)
    # histogram on the right
    ax_bottom.hist(df.displ,
                   40,
                   histtype='stepfilled',
                   orientation='vertical',
                   color='#098154')
    ax_bottom.invert_yaxis()
    # histogram in the bottom
    ax_right.hist(df.hwy,
                  40,
                  histtype='stepfilled',
                  orientation='horizontal',
                  color='#098154')
    # Decorations
    ax_main.set(title='Scatterplot with Histograms \n displ vs hwy',
                xlabel='displ',
                ylabel='hwy')
    ax_main.title.set_fontsize(10)
    for item in ([ax_main.xaxis.label, ax_main.yaxis.label] +
                 ax_main.get_xticklabels() + ax_main.get_yticklabels()):
        item.set_fontsize(10)

    xlabels = ax_main.get_xticks().tolist()
    ax_main.set_xticklabels(xlabels)
    plt.show()
draw_Marginal_Histogram("F:\数据杂坛\datasets\mpg_ggplot2.csv")

实现效果:

python可视化分析绘制带趋势线的散点图和边缘直方图

到此这篇关于python可视化分析绘制带趋势线的散点图和边缘直方图的文章就介绍到这了,更多相关python绘制内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
书单|人生苦短,你还不用python!
Dec 29 Python
通过Pandas读取大文件的实例
Jun 07 Python
python保存文件方法小结
Jul 27 Python
Python中字符串与编码示例代码
May 20 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
使用Python进行中文繁简转换的实现代码
Oct 18 Python
python列表生成器迭代器实例解析
Dec 19 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
Jan 03 Python
将python文件打包exe独立运行程序方法详解
Feb 12 Python
tensorflow之读取jpg图像长和宽实例
Jun 18 Python
Python图像识别+KNN求解数独的实现
Nov 13 Python
python re的findall和finditer的区别详解
Nov 15 Python
基于Python编写一个监控CPU的应用系统
如何基于python实现单目三维重建详解
python如何读取和存储dict()与.json格式文件
Jun 25 #Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
利用Python实时获取steam特惠游戏数据
Python first-order-model实现让照片动起来
You might like
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
PHP实现的数据对象映射模式详解
2019/03/20 PHP
javascript this用法小结
2008/12/19 Javascript
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
nodeType属性返回被选节点的节点类型介绍
2013/11/22 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
2015/11/09 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
JQuery实现DIV其他动画效果的简单实例
2016/09/18 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
基于js中this和event 的区别(详解)
2017/10/24 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
vue cli3适配所有端方案的实现
2020/04/13 Javascript
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
Python数据拟合与广义线性回归算法学习
2017/12/22 Python
Python使用一行代码获取上个月是几月
2018/08/30 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
浙大网新C/C++面试解惑
2015/05/27 面试题
iostream与iostream.h的区别
2015/01/16 面试题
成教毕业生自我鉴定
2013/10/23 职场文书
汽车专业人才自我鉴定范文
2013/12/29 职场文书
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
财产保全担保书范文
2014/04/01 职场文书
考试保密承诺书
2014/08/30 职场文书
销售员态度差检讨书
2014/10/26 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
自考生自我评价
2019/06/21 职场文书
webpack的移动端适配方案小结
2021/07/25 Javascript
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python