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 相关文章推荐
Python3基础之输入和输出实例分析
Aug 18 Python
Python while、for、生成器、列表推导等语句的执行效率测试
Jun 03 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 Python
Python简单计算文件MD5值的方法示例
Apr 11 Python
Python图像处理模块ndimage用法实例分析
Sep 05 Python
django实现web接口 python3模拟Post请求方式
Nov 19 Python
简单了解python装饰器原理及使用方法
Dec 18 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 Python
Python中logger日志模块详解
Aug 04 Python
详解Pycharm安装及Django安装配置指南
Sep 15 Python
Python如何解决secure_filename对中文不支持问题
Jul 16 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下intval()和(int)转换使用与区别
2008/07/18 PHP
PHP生成唯一的促销/优惠/折扣码(附源码)
2012/12/28 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
extjs 为某个事件设置拦截器
2010/01/15 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
javascript获取url上某个参数的方法
2013/11/08 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
JS简单实现城市二级联动选择插件的方法
2015/08/19 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
2016/02/18 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
jQuery处理XML文件的几种方法
2016/06/14 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
在python中实现对list求和及求积
2018/11/14 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
python处理写入数据代码讲解
2020/10/22 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
python中的列表和元组区别分析
2020/12/30 Python
HTML5标签使用方法详解
2015/11/27 HTML / CSS
JINS眼镜官方网站:日本最大的眼镜邮购
2016/10/14 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
一年级数学教学反思
2014/02/01 职场文书
放飞梦想演讲稿
2014/05/05 职场文书
调研汇报材料范文
2014/08/17 职场文书
走进科学观后感
2015/06/18 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书