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中的time模块与datetime模块用法总结
Jun 30 Python
浅析python递归函数和河内塔问题
Apr 18 Python
Collatz 序列、逗号代码、字符图网格实例
Jun 22 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
Sep 17 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
Oct 22 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
python离线安装外部依赖包的实现
Feb 13 Python
Python实现AI换脸功能
Apr 10 Python
pycharm设置默认的UTF-8编码模式的方法详解
Jun 01 Python
详解python程序中的多任务
Sep 16 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
Jan 06 Python
用Python写一个简易版弹球游戏
Apr 13 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学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
php输出形式实例整理
2020/05/05 PHP
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
2016/05/14 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
2017/09/28 Javascript
利用js编写网页进度条效果
2017/10/08 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
Vue.js 踩坑记之双向绑定
2018/05/03 Javascript
React项目动态设置title标题的方法示例
2018/09/26 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
JSX在render函数中的应用详解
2019/09/04 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
在Vue中使用HOC模式的实现
2020/08/23 Javascript
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
transform python环境快速配置方法
2018/09/27 Python
python列表使用实现名字管理系统
2019/01/30 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
python实现登录密码重置简易操作代码
2019/08/14 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
职业生涯规划书基本格式
2014/01/06 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
教师先进事迹材料
2014/12/16 职场文书
谢师宴学生致辞
2015/07/27 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
Python操作CSV格式文件的方法大全
2021/07/15 Python
室外天线与收音机天线杆接合方法
2022/04/05 无线电