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计算程序开始到程序结束的运行时间和程序运行的CPU时间
Nov 28 Python
python连接mongodb操作数据示例(mongodb数据库配置类)
Dec 31 Python
跟老齐学Python之集合(set)
Sep 24 Python
Python中的字典遍历备忘
Jan 17 Python
python创建进程fork用法
Jun 04 Python
python删除过期log文件操作实例解析
Jan 31 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
python str字符串转uuid实例
Mar 03 Python
浅谈Django中的QueryDict元素为数组的坑
Mar 31 Python
TensorFlow Autodiff自动微分详解
Jul 06 Python
Python如何给你的程序做性能测试
Jul 29 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 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配置文件中最常用四个ini函数
2007/03/19 PHP
php连接mssql数据库的几种方法
2013/02/21 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法
2013/08/21 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
js 获取、清空input type="file"的值示例代码
2014/02/19 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
js获取当前日期时间及其它操作汇总
2015/04/17 Javascript
JavaScript严格模式详解
2015/11/18 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
jQuery实现动态操作table行
2020/11/23 jQuery
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
[03:22]DSPL第一期精彩集锦:酷炫到底!
2014/11/07 DOTA
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
pandas数据处理进阶详解
2019/10/11 Python
Python使用configparser库读取配置文件
2020/02/22 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
HTML5+WebSocket实现多文件同时上传的实例
2016/12/29 HTML / CSS
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
酒店中秋节活动方案
2014/01/31 职场文书
《在家里》教后反思
2014/03/01 职场文书
保护环境的建议书
2014/03/12 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
先进典型事迹材料
2014/12/29 职场文书
CSS 一行代码实现头像与国旗的融合
2021/10/24 HTML / CSS