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实现ipsec开权限实例
Nov 11 Python
Python中设置变量作为默认值时容易遇到的错误
Apr 03 Python
Python中使用logging模块打印log日志详解
Apr 05 Python
python实现中文分词FMM算法实例
Jul 10 Python
Python实现的快速排序算法详解
Aug 01 Python
用python处理图片之打开\显示\保存图像的方法
May 04 Python
python sort、sort_index方法代码实例
Mar 28 Python
python2和python3实现在图片上加汉字的方法
Aug 22 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 Python
python如何实现图片压缩
Sep 11 Python
python Protobuf定义消息类型知识点讲解
Mar 02 Python
Python中字符串对象语法分享
Feb 24 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 session安全问题分析
2011/06/24 PHP
PHP json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
2013/11/07 PHP
彻底搞懂PHP 变量结构体
2017/10/11 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
JavaScript队列、优先队列与循环队列
2016/11/14 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
ES6 Object.assign()的用法及其使用
2020/01/18 Javascript
easy_install python包安装管理工具介绍
2013/02/10 Python
Python选课系统开发程序
2016/09/02 Python
Python中functools模块函数解析
2017/03/12 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
python3.7 sys模块的具体使用
2019/07/22 Python
Python 如何创建一个线程池
2020/07/28 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
大学生入党自我鉴定
2013/10/31 职场文书
房产公证书范本
2014/04/10 职场文书
给公司的建议书范文
2014/05/13 职场文书
InterProcessMutex实现zookeeper分布式锁原理
2022/03/21 Java/Android
js作用域及作用域链工作引擎
2022/07/07 Javascript
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis