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 相关文章推荐
Django中的CACHE_BACKEND参数和站点级Cache设置
Jul 23 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
Mar 13 Python
Python正则表达式经典入门教程
May 22 Python
tensorflow识别自己手写数字
Mar 14 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
Dec 13 Python
Python查找文件中包含中文的行方法
Dec 19 Python
Python+pyplot绘制带文本标注的柱状图方法
Jul 08 Python
HTML的form表单和django的form表单
Jul 25 Python
在python里创建一个任务(Task)实例
Apr 25 Python
Python代码需要缩进吗
Jul 01 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
Python中re模块的元字符使用小结
Apr 07 Python
基于Python编写一个监控CPU的应用系统
如何基于python实现单目三维重建详解
python如何读取和存储dict()与.json格式文件
Jun 25 #Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
利用Python实时获取steam特惠游戏数据
Python first-order-model实现让照片动起来
You might like
NOT NULL 和NULL
2007/01/15 PHP
php 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
2016/11/29 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
2018/11/02 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
[56:58]VP vs Optic 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python 回调函数和回调方法的实现分析
2016/03/23 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
Python subprocess库的使用详解
2018/10/26 Python
Python中函数参数匹配模型详解
2019/06/09 Python
python取余运算符知识点详解
2019/06/27 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
django创建超级用户过程解析
2019/09/18 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
NYX Professional Makeup英国官网:美国平价专业彩妆品牌
2019/11/13 全球购物
大四本科生的自我评价
2013/12/30 职场文书
单位刻章介绍信范文
2014/01/11 职场文书
销售个人求职信范文
2014/04/28 职场文书
结婚保证书(三从四德)
2015/02/26 职场文书
办公用品质量保证书
2015/05/11 职场文书
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python