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读写ini文件示例(python读写文件)
Mar 25 Python
Python Socket编程入门教程
Jul 11 Python
Python命令启动Web服务器实例详解
Feb 23 Python
Python 实现随机数详解及实例代码
Apr 15 Python
高效测试用例组织算法pairwise之Python实现方法
Jul 19 Python
Python中pygal绘制雷达图代码分享
Dec 07 Python
Python2中文处理纪要的实现方法
Mar 10 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
Apr 19 Python
python 五子棋如何获得鼠标点击坐标
Nov 04 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
Python实现结构体代码实例
Feb 10 Python
Python实现UDP程序通信过程图解
May 15 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简单获取网站百度搜索和搜狗搜索收录量的方法
2016/08/23 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
PHP代码加密的方法总结
2020/03/13 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
用js重建星际争霸
2006/12/22 Javascript
javascript String 对象
2008/04/25 Javascript
基于jquery的图片懒加载js
2010/06/30 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
JS的replace方法详细介绍
2012/11/09 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
2015/11/25 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
2016/12/13 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
Gulp实现静态网页模块化的方法详解
2018/01/09 Javascript
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
在VUE style中使用data中的变量的方法
2020/06/19 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
python实现的解析crontab配置文件代码
2014/06/30 Python
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
python使用xlrd模块读写Excel文件的方法
2015/05/06 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
环境科学专业个人求职的自我评价
2013/11/28 职场文书
致跳远、跳高运动员广播稿
2014/01/09 职场文书
致百米运动员广播稿
2014/01/29 职场文书
运动会通讯稿150字
2014/02/15 职场文书
后勤服务中心总经理工作职责
2014/03/03 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
python中redis包操作数据库的教程
2022/04/19 Python