之前在今日头条中更新了几期的Matplotlib教学短视频,在圈内受到了广泛好评,现应大家要求,将视频中的代码贴出来,方便大家学习。

为了使实例图像显得不单调,我们先将绘图代码贴上来,此处代码对Figure背景设置无影响。

默认背景下图像及代码


import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import matplotlib.image as img
from matplotlib.font_manager import FontProperties # 显示数学公式
def add_math_background(fig):
ax = fig.add_axes([0.3, 0.25, 0.5, 0.5])
text = []
text.append(
(r"$W^{3\beta}_{\delta_1 \rho_1 \sigma_2} = "
r"U^{3\beta}_{\delta_1 \rho_1} + \frac{1}{8 \pi 2}"
r"\int^{\alpha_2}_{\alpha_2} d \alpha^\prime_2 "
r"\left[\frac{ U^{2\beta}_{\delta_1 \rho_1} - "
r"\alpha^\prime_2U^{1\beta}_{\rho_1 \sigma_2} "
r"}{U^{0\beta}_{\rho_1 \sigma_2}}\right]$", (0.6, 0.3), 20))
text.append((r"$\frac{d\rho}{d t} + \rho \vec{v}\cdot\nabla\vec{v} "
r"= -\nabla p + \mu\nabla^2 \vec{v} + \rho \vec{g}$",
(0.45, 0.7), 20))
text.append((r"$\int_{-\infty}^\infty e^{-x^2}dx=\sqrt{\pi}$",
(0.25, 0.4), 25))
text.append((r"$F_G = G\frac{m_1m_2}{r^2}$",
(0.75, 0.6), 30))
for eq, (x, y), size in text:
ax.text(x, y, eq, ha='center', va='center', color="#11557c",
alpha=0.25, transform=ax.transAxes, fontsize=size)
ax.set_axis_off()
return ax # 显示Matplotlib小讲堂
def add_matplotlib_text(ax,color):
font=FontProperties(fname=r"/Library/Fonts/Songti.ttc", size=85)
ax.text(0.55, 0.6, 'matplotlib', color=color,size=35,
ha='right', va='bottom', alpha=1.0, transform=ax.transAxes)
ax.text(0.55, 0.45, u'小讲堂', color=color,fontproperties=font,
ha='center', va='center', alpha=1.0, transform=ax.transAxes) # 极坐标图像
def add_polar_bar(fig):
ax = fig.add_axes([0.25, 0.4, 0.2, 0.2], projection='polar') ax.axesPatch.set_alpha(0.05)
ax.set_axisbelow(True)
N = 7
arc = 2. * np.pi
theta = np.arange(0.0, arc, arc/N)
radii = 10 * np.array([0.2, 0.6, 0.8, 0.7, 0.4, 0.5, 0.8])
width = np.pi / 4 * np.array([0.4, 0.4, 0.6, 0.8, 0.2, 0.5, 0.3])
bars = ax.bar(theta, radii, width=width, bottom=0.0)
for r, bar in zip(radii, bars):
bar.set_facecolor(cm.jet(r/10.))
bar.set_alpha(0.6) for label in ax.get_xticklabels() + ax.get_yticklabels():
label.set_visible(False) for line in ax.get_ygridlines() + ax.get_xgridlines():
line.set_lw(0.8)
line.set_alpha(0.9)
line.set_ls('-')
line.set_color('0.5') ax.set_yticks(np.arange(1, 9, 2))
ax.set_rmax(9) def pltfig(fig,color='#11557c'):
main_axes = add_math_background(fig)
add_polar_bar(fig)
add_matplotlib_text(main_axes,color) if __name__ == '__main__':
fig = plt.figure(figsize=(16, 8))
pltfig(fig)
plt.show()

单一色彩背景

Figure设置单一色彩背景通常有两种方法:

  1. 创建Figure对象时给定facecolor关键字参数值

    fig = plt.figure(facecolor='snow')
  2. 使用Figure对象的set_facecolor方法
fig = plt.figure()
fig.set_facecolor('blueviolet')

方法一代码及图像

if __name__ == '__main__':
fig = plt.figure(figsize=(16, 8),facecolor='snow')
pltfig(fig)
plt.show()

方法二代码及图像

if __name__ == '__main__':
fig = plt.figure(figsize=(16, 8))
fig.set_facecolor('blueviolet')
pltfig(fig)
plt.show()

复合色彩背景

Figure设置复合色彩背景步骤:

  1. 创建色彩数组

    a = [np.linspace(0,1,1600)]*1600
  2. 通过Figure对象的figimage方法中的cmap关键字设定要设定的背景色彩

    fig.figimage(a, cmap= plt.get_cmap('autumn'))

代码及图像:

if __name__ == '__main__':
fig = plt.figure(figsize=(16, 8))
a = [np.linspace(0,1,1600)]*1600
fig.figimage(a, cmap= plt.get_cmap('autumn'))
pltfig(fig)
plt.show()

图像背景

Figure设置图像背景步骤:

  1. 将图像文件转换成数组

    bgimg = img.imread('./world.png')
  2. 通过Figure对象的figimage方法将图像设置为背景

    fig.figimage(bgimg)

代码及图像:

if __name__ == '__main__':
fig = plt.figure(figsize=(16, 8))
bgimg = img.imread('./world.png')
fig.figimage(bgimg)
pltfig(fig)
plt.show()


视频地址

想观看Matplotlib教学视频,了解更多Matplotlib实用技巧可关注

微信公众账号: MatplotlibClass

今日头条号:Matplotlib小讲堂

Python数据可视化Matplotlib——Figure画布背景设置的更多相关文章

  1. python数据可视化-matplotlib入门(7)-从网络加载数据及数据可视化的小总结

    除了从文件加载数据,另一个数据源是互联网,互联网每天产生各种不同的数据,可以用各种各样的方式从互联网加载数据. 一.了解 Web API Web 应用编程接口(API)自动请求网站的特定信息,再对这些 ...

  2. Python数据可视化matplotlib和seaborn

    Python在数据科学中的地位,不仅仅是因为numpy, scipy, pandas, scikit-learn这些高效易用.接口统一的科学计算包,其强大的数据可视化工具也是重要组成部分.在Pytho ...

  3. Python数据可视化--matplotlib

    抽象化|具体化: 如盒形图 | 现实中的图 功能性|装饰性:没有装饰和渲染 | 包含艺术性美学上的装饰 深度表达|浅度表达:深入层次的研究探索数据 | 易于理解的,直观的表示 多维度|单一维度:数据的 ...

  4. python数据可视化-matplotlib入门(5)-饼图和堆叠图

    饼图常用于统计学模块,画饼图用到的方法为:pie( ) 一.pie()函数用来绘制饼图 pie(x, explode=None, labels=None, colors=None, autopct=N ...

  5. python数据可视化-matplotlib入门(6)-从文件中加载数据

    前几篇都是手动录入或随机函数产生的数据.实际有许多类型的文件,以及许多方法,用它们从文件中提取数据来图形化. 比如之前python基础(12)介绍打开文件的方式,可直接读取文件中的数据,扩大了我们的数 ...

  6. python数据可视化——matplotlib 用户手册入门:pyplot 画图

    参考matplotlib官方指南: https://matplotlib.org/tutorials/introductory/pyplot.html#sphx-glr-tutorials-intro ...

  7. python数据可视化——matplotlib 用户手册入门:使用指南

    参考matplotlib官方指南: https://matplotlib.org/tutorials/introductory/usage.html#sphx-glr-tutorials-introd ...

  8. Python数据可视化——使用Matplotlib创建散点图

    Python数据可视化——使用Matplotlib创建散点图 2017-12-27 作者:淡水化合物 Matplotlib简述: Matplotlib是一个用于创建出高质量图表的桌面绘图包(主要是2D ...

  9. Python数据可视化基础讲解

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:爱数据学习社 首先,要知道我们用哪些库来画图? matplotlib ...

随机推荐

  1. ByteBuffer源码分析

    在进行数据传输的时候,往往需要使用到缓冲区,常用的缓冲区就是JDK NIO类库中提供的java.nio.Buffer,实现类如下: 在使用NIO编程时,最常用的是其中的ByteBuffer,本篇分析B ...

  2. bc计算A股上市新股依次涨停股价

    几年的股市可谓惨不忍睹,不提也罢.唯有打新中签的时候,心里稍微有那么一点点的补偿,于是内心就YY可以30板吗,可以40板吗.于是就写了个连板的bc程序,每次中签的时候就运行一下,然后尽情的YY,然而每 ...

  3. linux 下tomcat的安装

    写在前面: 由于项目使用jdk1.6开发,所以对应服务器应安装jdk1.6和tomcat6 --- 1.环境变量的配置: 打开/etc/bashrc配置环境变量 JAVA_HOME=/usr/apps ...

  4. vue setTimeout用法 jquery滚动到某一个div的底部

    //vue 中setTimeOut用法 var $this = this; setTimeout(function(){ $this.goEnd() }, 10); goEnd:function(){ ...

  5. Tomcat网页加载速度过慢的解决方法

    可以vim conf/server.xml,在# OS specific support.  $var _must_ be set to either true or false.下添加: JAVA_ ...

  6. laravel中间件使用

    1.在app/Http/Kernel.php文件中配置中间件文件,例如: protected $routeMiddleware = [ 'auth' => \Illuminate\Auth\Mi ...

  7. SSIM(结构相似度算法)不同实现版本的差异

    前言 最近用ssim测试图片画质损伤时,发现matlab自带ssim与之前一直使用的ssim计算得分有差异,故和同事开始确定差异所在. 不同的SSIM版本 这里提到不同的ssim版本主要基于matla ...

  8. 原生js表单序列化----- FormData

    <style type="text/css"> .progress{ height: 10px; width: 600px; border: 1px solid red ...

  9. mysql中exists、not exists的用法

    exists 关键字是判断是否存在的,存在则返回true,不存在则返回false, not exists则是不存在时返回true,存在返回false: 1. 最常用的if not  exists用法: ...

  10. Android Project和app中两个build.gradle配置的区别

    Android 开发也挺长时间了,从开始就使用的AndroidStudio开发,但是说下来其实自己对AS(AndroidStudio简称)还真的是不了解不深入.好吧,其实我只知道AS是一个相当强大的工 ...