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根据距离和时长计算配速示例
Feb 16 Python
Python中使用ConfigParser解析ini配置文件实例
Aug 30 Python
Python决策树和随机森林算法实例详解
Jan 30 Python
python最长回文串算法
Jun 04 Python
python制作填词游戏步骤详解
May 05 Python
python控制台实现tab补全和清屏的例子
Aug 20 Python
python 字符串常用函数详解
Sep 11 Python
解决python-docx打包之后找不到default.docx的问题
Feb 13 Python
pyspark对Mysql数据库进行读写的实现
Dec 30 Python
linux中nohup和后台运行进程查看及终止
Jun 24 Python
Python快速实现一键抠图功能的全过程
Jun 29 Python
Python各协议下socket黏包问题原理
Apr 12 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中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
PHP实现的数据对象映射模式详解
2019/03/20 PHP
mapper--图片热点区域高亮组件官方站点
2007/12/22 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
JavaScript中的函数模式详解
2015/02/11 Javascript
使用Jquery实现每日签到功能
2015/04/03 Javascript
arguments对象验证函数的参数是否合法
2015/06/26 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
vue axios数据请求及vue中使用axios的方法
2018/09/10 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
vue倒计时刷新页面不会从头开始的解决方法
2020/03/03 Javascript
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
Python-嵌套列表list的全面解析
2016/06/08 Python
Python数据结构之单链表详解
2017/09/12 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
win10下python3.5.2和tensorflow安装环境搭建教程
2018/09/19 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
C#如何进行LDAP用户校验
2012/11/21 面试题
服装设计专业毕业生推荐信
2013/11/09 职场文书
2014年圣诞节促销方案
2014/03/14 职场文书
2014物价局群众路线对照检查材料思想汇报
2014/09/21 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
边城读书笔记
2015/06/29 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
MySQL索引知识的一些小妙招总结
2021/05/10 MySQL
MySQL快速插入一亿测试数据
2021/06/23 MySQL
分享3个非常实用的 Python 模块
2022/03/03 Python