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批量修改文件名的实现代码
Sep 01 Python
Python内置函数dir详解
Apr 14 Python
Windows下Python2与Python3两个版本共存的方法详解
Feb 12 Python
Django使用Celery异步任务队列的使用
Mar 13 Python
python获取磁盘号下盘符步骤详解
Jun 19 Python
Python流程控制 if else实现解析
Sep 02 Python
基于Python批量生成指定尺寸缩略图代码实例
Nov 20 Python
浅谈Python中文件夹和python package包的区别
Jun 01 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
Python Request类源码实现方法及原理解析
Aug 17 Python
python中用ggplot绘制画图实例讲解
Jan 26 Python
总结Python变量的相关知识
Jun 28 Python
基于Python编写一个监控CPU的应用系统
如何基于python实现单目三维重建详解
python如何读取和存储dict()与.json格式文件
Jun 25 #Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
利用Python实时获取steam特惠游戏数据
Python first-order-model实现让照片动起来
You might like
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
jquery遍历标签中自定义的属性方法
2016/09/17 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
webpack热模块替换(HMR)/热更新的方法
2018/04/05 Javascript
Node.js log4js日志管理详解
2018/07/31 Javascript
详解Vue中组件的缓存
2019/04/20 Javascript
vue 获取视频时长的实例代码
2019/08/20 Javascript
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python实现ftp客户端示例分享
2014/02/17 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
python getopt详解及简单实例
2016/12/30 Python
Python爬豆瓣电影实例
2018/02/23 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
Python zip函数打包元素实例解析
2019/12/11 Python
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
计算机网络专业个人的自我评价
2013/10/17 职场文书
建材业务员岗位职责
2013/12/08 职场文书
三年级学生评语
2014/04/23 职场文书
植树造林的宣传标语
2014/06/23 职场文书
大学迎新生标语
2014/10/06 职场文书
欢送领导祝酒词
2015/08/12 职场文书
Python深度学习之实现卷积神经网络
2021/06/05 Python
springboot用户数据修改的详细实现
2022/04/06 Java/Android