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处理大数字的方法
May 27 Python
python删除指定类型(或非指定)的文件实例详解
Jul 06 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
Python编程求解二叉树中和为某一值的路径代码示例
Jan 04 Python
python中字符串比较使用is、==和cmp()总结
Mar 18 Python
一条命令解决mac版本python IDLE不能输入中文问题
May 15 Python
Python SMTP发送邮件遇到的一些问题及解决办法
Oct 24 Python
python定时复制远程文件夹中所有文件
Apr 30 Python
Gauss-Seidel迭代算法的Python实现详解
Jun 29 Python
Python解决pip install时出现的Could not fetch URL问题
Aug 01 Python
Python切图九宫格的实现方法
Oct 10 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
Aug 19 Python
基于Python编写一个监控CPU的应用系统
如何基于python实现单目三维重建详解
python如何读取和存储dict()与.json格式文件
Jun 25 #Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
利用Python实时获取steam特惠游戏数据
Python first-order-model实现让照片动起来
You might like
php对称加密算法示例
2014/05/07 PHP
php简单实现无限分类树形列表的方法
2015/03/27 PHP
$()JS小技巧
2007/07/21 Javascript
Js 随机数产生6位数字
2010/05/13 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
Express使用html模板的详细代码
2017/09/18 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
原生js封装的ajax方法示例
2018/08/02 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
vue-cli 关闭热更新操作
2020/09/18 Javascript
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
Python科学计算之Pandas详解
2017/01/15 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
中学生国旗下讲话稿
2014/04/26 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
考研复习计划
2015/01/19 职场文书
篮球赛新闻稿
2015/07/17 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书