1 概述

在可视化过程中,经常会对默认的制图效果不满意,希望能个性化进行各种设置。

本文通过一个简单的示例,来介绍seaborn可视化过程中的个性化设置。包括常用的设置,如:

  1. 设置图表显示颜色
  2. 设置图表标题,包括显示位置,字体大小,颜色等
  3. 设置x轴和y轴标题,包括颜色,字体大小
  4. 设置x轴和y轴刻度内容,包括颜色、字体大小、字体方向等
  5. 将x轴和y轴内容逆序显示
  6. 设置x轴或y轴显示位置

本文的运行环境:

  1. windows 7
  2. python 3.5
  3. jupyter notebook
  4. seaborn 0.7.1
  5. matplotlib 2.0.2

2 未个性化设置的情形

本文的数据来自UCI的数据集”sonar”,用pandas直接读取数据。如下:

  1. import pandas as pd
  2. import matplotlib.pyplot as plt
  3. import seaborn as sns
  4. % matplotlib inline
  5. target_url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/undocumented/connectionist-bench/sonar/sonar.all-data'
  6. df = pd.read_csv(target_url, header=None, prefix='V')
  7. corr = df.corr()

首先来看看没有进行个性化设置时的显示情况,如下:

  1. f, ax= plt.subplots(figsize = (14, 10))
  2. sns.heatmap(corr,cmap='RdBu', linewidths = 0.05, ax = ax)
  3. # 设置Axes的标题
  4. ax.set_title('Correlation between features')
  5. f.savefig('sns_style_origin.jpg', dpi=100, bbox_inches='tight')

图片显示效果如下:

seaborn制图的默认效果其实还是不错的。

3 进行个性化设置

对于上面这张图,可能让y轴从下到上,从v0开始显示,这样显示出来的对角线可能更符合我们的视觉显示效果。

这就要用到 将y轴内容进行可逆显示,涉及的代码如下:

  1. # 将y轴或x轴进行逆序
  2. ax.invert_yaxis()
  3. # ax.invert_xaxis()

其他的个性化设置的代码,包括:

将x轴刻度放置在top位置的几种方法

  1. # 将x轴刻度放置在top位置的几种方法
  2. # ax.xaxis.set_ticks_position('top')
  3. ax.xaxis.tick_top()
  4. # ax.tick_params(axis='x',labelsize=6, colors='b', labeltop=True, labelbottom=False) # x轴

设置坐标轴刻度参数,”axis”不写的时候,默认是x轴和y轴的参数同时调整。

  1. # 设置坐标轴刻度的字体大小
  2. # matplotlib.axes.Axes.tick_params
  3. ax.tick_params(axis='y',labelsize=8) # y轴

旋转轴刻度上文字方向的两种方法

  1. # 旋转轴刻度上文字方向的两种方法
  2. ax.set_xticklabels(ax.get_xticklabels(), rotation=-90)
  3. # ax.set_xticklabels(corr.index, rotation=90)

保存图片,设置bbox_inches=’tight’,保存的图片则不会出现部分内容显示不全的现象。

  1. f.savefig('sns_style_update.jpg', dpi=100, bbox_inches='tight')

整合好的代码如下,大家可以运行试试效果。

  1. f, ax = plt.subplots(figsize = (14, 10))
  2. # 设置颜色
  3. cmap = sns.cubehelix_palette(start = 1, rot = 3, gamma=0.8, as_cmap = True)
  4. # color: https://matplotlib.org/users/colormaps.html
  5. sns.heatmap(corr,cmap='RdBu', linewidths = 0.05, ax = ax)
  6. # 设置Axes的标题
  7. ax.set_title('Correlation between features', fontsize=18, position=(0.5,1.05))
  8. # 将y轴或x轴进行逆序
  9. ax.invert_yaxis()
  10. # ax.invert_xaxis()
  11. ax.set_xlabel('X Label',fontsize=10)
  12. # 设置Y轴标签的字体大小和字体颜色
  13. ax.set_ylabel('Y Label',fontsize=15, color='r')
  14. # 设置坐标轴刻度的字体大小
  15. # matplotlib.axes.Axes.tick_params
  16. ax.tick_params(axis='y',labelsize=8) # y轴
  17. # ax.tick_params(axis='x',labelsize=6, colors='b', labeltop=True, labelbottom=False) # x轴
  18. # 将x轴刻度放置在top位置的几种方法
  19. # ax.xaxis.set_ticks_position('top')
  20. ax.xaxis.tick_top()
  21. # ax.tick_params(axis='x',labelsize=6, colors='b', labeltop=True, labelbottom=False) # x轴
  22. # 修改tick的字体颜色
  23. # ax.tick_params(axis='x', colors='b') # x轴
  24. # 旋转轴刻度上文字方向的两种方法
  25. ax.set_xticklabels(ax.get_xticklabels(), rotation=-90)
  26. # ax.set_xticklabels(corr.index, rotation=90)
  27. # 单独设置y轴或x轴刻度的字体大小, 调整字体方向
  28. # ax.set_yticklabels(ax.get_yticklabels(),fontsize=6)
  29. # ax.set_xticklabels(ax.get_xticklabels(), rotation=-90)
  30. f.savefig('sns_style_update.jpg', dpi=100, bbox_inches='tight')

图形显示效果如下:

这些个性化的设置,其实大部分都是使用的matplotlib的内容,seaborn是基于matplotlib衍生的,所以可以跟matplotlib进行融合使用。

当然,并不是每次都需要进行个性定制,具体可以根据自己的需求来设置。

如果您喜欢我的文章,欢迎关注微信公众号“Python数据之道”(ID:PyDataRoad

Python - Seaborn可视化:图形个性化设置的几个小技巧的更多相关文章

  1. Python开发工具PyCharm个性化设置(图解)

    Python开发工具PyCharm个性化设置,包括设置默认PyCharm解析器.设置缩进符为制表符.设置IDE皮肤主题等,大家参考使用吧. JetBrains PyCharm Pro 4.5.3 中文 ...

  2. Python开发工具PyCharm个性化设置

    Python开发工具PyCharm个性化设置,包括设置默认PyCharm解析器.设置缩进符为制表符.设置IDE皮肤主题等,大家参考使用吧     1.设置默认PyCharm解析器: 操作如下: Pyt ...

  3. Vscode个性化设置:让一个小萌妹陪你敲代码

    前言 大家平时都用什么代码编辑器啊!我个人比较喜欢用vscode,因为有以下几点: 开源,免费: 自定义配置 集成git 智能提示强大 支持各种文件格式(html/jade/css/less/sass ...

  4. 设置visual studio的小技巧

    设置 Visual Studio 方法 1.设置关闭快捷键 Ctrl + W:关闭当前文档窗口 Ctrl + Q:关闭所有文档窗口 设置方法:工具-->选项-->键盘:在显示命令包含中输入 ...

  5. 关于Python ,requests的小技巧

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xie_0723/article/details/52790786 关于 Python Request ...

  6. Python Requests 小技巧总结

    关于 Python Requests ,在使用中,总结了一些小技巧把,分享下. 1:保持请求之间的Cookies,我们可以这样做. import requests self.session = req ...

  7. Python数据可视化-seaborn库之countplot

    在Python数据可视化中,seaborn较好的提供了图形的一些可视化功效. seaborn官方文档见链接:http://seaborn.pydata.org/api.html countplot是s ...

  8. g2蚂蚁数据可视化折线图,点位坐标label 图形文本设置

    应用g2可视化插件画了个粉丝分析图 要求显示如图所见的节点参数,查看文档蚂蚁图形文本设置,得知需要引入如下代码: chart.point().position('update*praises').la ...

  9. 【数据科学】Python数据可视化概述

    注:很早之前就打算专门写一篇与Python数据可视化相关的博客,对一些基本概念和常用技巧做一个小结.今天终于有时间来完成这个计划了! 0. Python中常用的可视化工具 Python在数据科学中的地 ...

随机推荐

  1. C# 汉语转拼音

    汉语转拼音或首字母 通常不少网站上有汉语转拼音功能,今天就小记下这段汉语转拼音的代码,自己测试ok,现把代码贴出来,以备日后使用: 效果 用法很简单后台使用到了两个类文件,一个是:ConvertHzT ...

  2. 使用 QDockWidget嵌套布局来实现复杂界面,方便用户可以自定义界面,自由组合窗口

    http://www.cnblogs.com/findumars/p/5436533.html

  3. 字符的读写函数:fgetc()和fputc()

    fgetc();    功能:    从文件中读取字符.    头文件:  #include <stdio.h>    函数原型:int fgetc(FILE *stream);    返 ...

  4. docker~Dockerfile方式生成控制台和Api项目的镜像

    回到目录 一些理论知识 将控制台程序和API程序部署到docker,然后运行它,这个首先要解决的问题就是如何在linux平台运行C#代码,哈哈,很古老的问题,事实上,对于这种问题早在几年前就已经有了解 ...

  5. JDBC&&c3p0、事务、批处理、多线程 于一体的经典秘方QueryRunner

    目录: 基础篇_功能各自回顾 JDBC基础代码回顾(使用JdbcUtils工具简化) c3p0数据库连接池的使用(使用JdbcUtils工具简化) 大数据的插入(使用c3p0+JdbcUtils工具简 ...

  6. 认识cpu、核与线程

    作为一个后台开发人员,我想有必要了解这些基础知识.如果本文有不严谨或者疏忽的地方,请指正. cpu与核心 物理核 物理核数量=cpu数(机子上装的cpu的数量)*每个cpu的核心数 虚拟核 所谓的4核 ...

  7. easyui复选框树动态加载后台数据,实现自动选中数据库中数据。后台语言是.NET

    最近公司做项目用到了easyui复选框树来实现加载不同类型产品.因为我刚刚毕业,现在也算是实习吧,所以一脸懵逼啊.在公司里的一个哥的帮助下 ,我写出来这个EasyUi复选框树了,虽然东西不难,但也是自 ...

  8. JARVIS 手机监控局域网内PC

    JARVIS 通过反向的Socket连接,实现通过手机(或任何可以发送Http请求的设备)对局域网内PC的监控.在外时可以远程监视家里PC任务的执行情况,甚至远程唤醒家里的PC提前打开游戏也可以实现( ...

  9. 文科生细谈学习Linux系统的重要性

    首先大概介绍下自己,我学的是公共事业管理方面的专业,可以说是面向纯理论,社区管理社会管理的专业,但是从大二开始,对网络及服务器运维方面产生浓厚兴趣,并不断在网上找相关资料. 在这期间经历过很多,单说桌 ...

  10. year:2017 month:7 day:27

    2017-07-27 JAVA 1:java分为三类:javase(桌面开发应用) javaee(企业级开发应用) javame(手机嵌入式开发应用) 2:jdk(java开发工具包),jre(jav ...