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简单读取大文件的方法
Jul 01 Python
Python生成随机密码的方法
Jun 16 Python
python实现百万答题自动百度搜索答案
Jan 16 Python
Python编程中flask的简介与简单使用
Dec 28 Python
python 提取key 为中文的json 串方法
Dec 31 Python
Python3.5 Pandas模块之Series用法实例分析
Apr 23 Python
Django 静态文件配置过程详解
Jul 23 Python
详解Python3定时器任务代码
Sep 23 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
Apr 07 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 Python
python实现ROA算子边缘检测算法
Apr 05 Python
python文件与路径操作神器 pathlib
Apr 01 Python
基于Python编写一个监控CPU的应用系统
如何基于python实现单目三维重建详解
python如何读取和存储dict()与.json格式文件
Jun 25 #Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
利用Python实时获取steam特惠游戏数据
Python first-order-model实现让照片动起来
You might like
建立文件交换功能的脚本(二)
2006/10/09 PHP
php实现mysql数据库备份类
2008/03/20 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
php使用Jpgraph绘制3D饼状图的方法
2015/06/10 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
jquery获取tagName再进行判断
2014/05/29 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
jQuery 获取多选框的值及多选框中文的函数
2016/05/16 Javascript
Bootstrap Modal遮罩弹出层(完整版)
2016/11/21 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
2018/05/28 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
python使用socket向客户端发送数据的方法
2015/04/29 Python
浅谈用VSCode写python的正确姿势
2017/12/16 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
Pytorch 实现权重初始化
2019/12/31 Python
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
高三自我鉴定
2013/10/23 职场文书
最新党员的自我评价分享
2013/11/04 职场文书
毕业生自荐书
2014/02/03 职场文书
人力资源部经理岗位职责规定
2014/02/23 职场文书
GMP办公室主任岗位职责
2014/03/14 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
员工工作表现评语
2014/04/26 职场文书
2015年依法行政工作总结
2015/04/29 职场文书
MySQL新手入门进阶语句汇总
2022/09/23 MySQL