使用matplotlib的示例:调整字体-设置colormap和colorbar

# -*- coding: utf-8 -*-
#**********************************************************
import os
import numpy as np
import wlab #pip install wlab
import matplotlib
import matplotlib.cm as cm
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
from scipy.interpolate import griddata
matplotlib.rcParams['xtick.direction'] = 'out'
matplotlib.rcParams['ytick.direction'] = 'out'
#**********************************************************
FreqPLUS=['F06925','F10650','F23800','F18700','F36500','F89000']
#
FindPath='/d3/MWRT/R20130805/'
#**********************************************************
fig = plt.figure(figsize=(8,6), dpi=72, facecolor="white")
axes = plt.subplot(111)
axes.cla()#清空坐标轴内的所有内容
#指定图形的字体
font = {'family' : 'serif',
'color' : 'darkred',
'weight' : 'normal',
'size' : 16,
}
#**********************************************************
# 查找目录总文件名中保护F06925,EMS和txt字符的文件
for fp in FreqPLUS:
FlagStr=[fp,'EMS','txt']
FileList=wlab.GetFileList(FindPath,FlagStr)
#
LST=[]#地表温度
EMS=[]#地表发射率
TBH=[]#水平极化亮温
TBV=[]#垂直极化亮温
#
findex=0
for fn in FileList:
findex=findex+1
if (os.path.isfile(fn)):
print(str(findex)+'-->'+fn)
#fn='/d3/MWRT/R20130805/F06925_EMS60.txt'
data=wlab.dlmread(fn)
EMS=EMS+list(data[:,1])#地表发射率
LST=LST+list(data[:,2])#温度
TBH=TBH+list(data[:,8])#水平亮温
TBV=TBV+list(data[:,9])#垂直亮温
#-----------------------------------------------------------
#生成格点数据,利用griddata插值
grid_x, grid_y = np.mgrid[275:315:1, 0.60:0.95:0.01]
grid_z = griddata((LST,EMS), TBH, (grid_x, grid_y), method='cubic')
#将横纵坐标都映射到(0,1)的范围内
extent=(0,1,0,1)
#指定colormap
cmap = matplotlib.cm.jet
#设定每个图的colormap和colorbar所表示范围是一样的,即归一化
norm = matplotlib.colors.Normalize(vmin=160, vmax=300)
#显示图形,此处没有使用contourf #>>>ctf=plt.contourf(grid_x,grid_y,grid_z)
gci=plt.imshow(grid_z.T, extent=extent, origin='lower',cmap=cmap, norm=norm)
#配置一下坐标刻度等
ax=plt.gca()
ax.set_xticks(np.linspace(0,1,9))
ax.set_xticklabels( ('275', '280', '285', '290', '295', '300', '305', '310', '315'))
ax.set_yticks(np.linspace(0,1,8))
ax.set_yticklabels( ('0.60', '0.65', '0.70', '0.75', '0.80','0.85','0.90','0.95'))
#显示colorbar
cbar = plt.colorbar(gci)
cbar.set_label('$T_B(K)$',fontdict=font)
cbar.set_ticks(np.linspace(160,300,8))
cbar.set_ticklabels( ('160', '180', '200', '220', '240', '260', '280', '300'))
#设置label
ax.set_ylabel('Land Surface Emissivity',fontdict=font)
ax.set_xlabel('Land Surface Temperature(K)',fontdict=font) #陆地地表温度LST
#设置title
titleStr='$T_B$ for Freq = '+str(float(fp[1:-1])*0.01)+'GHz'
plt.title(titleStr)
figname=fp+'.png'
plt.savefig(figname)
plt.clf()#清除图形 #plt.show()
print('ALL -> Finished OK')

上面的例子中,每个保存的图,都是用同样的colormap,并且每个图的颜色映射值都是一样的,也就是说第一个图中如果200表示蓝色,那么其他图中的200也表示蓝色。

示例的图形如下:

使用matplotlib的示例:调整字体-设置colormap和colorbar的更多相关文章

  1. 使用matplotlib的示例:调整字体-设置刻度、坐标、colormap和colorbar等

    使用matplotlib的示例:调整字体-设置刻度.坐标.colormap和colorbar等 2013-08-09 19:04 27805人阅读 评论(1) 收藏 举报  分类: Python(71 ...

  2. (数据科学学习手札100)搞定matplotlib中的字体设置

    本文示例文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 matplotlib作为数据可视化的利器,被广泛 ...

  3. IDEA或Webstorm设置Ctrl+滚轮调整字体大小

    按Ctrl+Shift+A,出现搜索框 输入mouse: 点击打开这个设置:勾选 点击ok,之后就可以通过Ctrl+滚轮 调整字体大小了.

  4. 用matplotlib绘制带误差的条形图及中英文字体设置

    #!/usr/bin/env python3 ## 以下是一个带误差条的条形图的例子,演示了误差条形图的绘制及中英文字体设置 import numpy as np import matplotlib ...

  5. IDEA设置Ctrl+滚轮调整字体大小

    IDEA设置Ctrl+滚轮调整字体大小(转载)   按Ctrl+Shift+A,出现搜索框 输入mouse: 点击打开这个设置:勾选 点击ok,之后就可以通过Ctrl+滚轮 调整字体大小了.

  6. IDEA设置Ctrl+滚轮调整字体大小(转载)

    按Ctrl+Shift+A,出现搜索框 输入mouse: 点击打开这个设置:勾选 点击ok,之后就可以通过Ctrl+滚轮 调整字体大小了. 转载自:http://www.cnblogs.com/LUA ...

  7. Css调整字体间距

    在span div 某些元素中有时候会用到调整字体的间距,设置方法: letter-spacing:15px;  

  8. 禁用微信 webview 调整字体大小

    原文:http://www.grycheng.com/?p=2411 微信 webview 内置了调整字体大小的功能,对于网页的可用性来说是一个很实用的功能.一些网页的字体设置过小导致用户看不清文字, ...

  9. 怎么限制Google自己主动调整字体大小

    Google默认的字体大小是12px,当样式表中font-size<12px时,或者没有明白指定字体大小,则在chrome浏览器里字体显示是12px. 近期在写代码玩的时候,我也碰到了 在FF和 ...

随机推荐

  1. 28 Data Race Detector 数据种类探测器:数据种类探测器手册

    Data Race Detector 数据种类探测器:数据种类探测器手册 Introduction Usage Report Format Options Excluding Tests How To ...

  2. js实现数据视图双向绑定原理

    这个方法了不起啊..vue.js和avalon.js 都是通过它实现双向绑定的..而且Object.observe也被草案发起人撤回了..所以defineProperty更有必要了解一下了几行代码看他 ...

  3. java基础51 IO流技术(打印流)

    1.打印流(printStream)的概念 打印流可以打印任意的数据类型 2.printStream的步骤 1.找到目标文件    2.创建一个打印流    3.打印信息    4.关闭资源 3.实例 ...

  4. Java 容器的基本概念

    java容器类类库的用途时"保存对象",并将其划分为两个不同的概念: 1)Collection(采集).一个独立元素的序列,这些元素都服从一条或多条规则,List必须按照插入的顺序 ...

  5. 在SQL2008和2012里面怎么让显示全部行和编辑 全部而不是200和1000

    在sql server2008里面,可能微软考虑到数据量比较大,如果直接返回所有行,可能造成耗费时间过多.所有默认为"编辑前200行"和"返回前1000行".这 ...

  6. MySQL学习笔记:字符串前后补全0

    遇到一个需求:不足6位的需要自动补全6位,使用函数LPAD()和RPAD()补全. LPAD(str, len, padstr) 用字符串padstr对str进行左边填充补全直至它的长度达到len个字 ...

  7. Pg168-1

    1.Pg168-1 package org.hanqi.pn0120; public class Computer { private double neicundx=10; public doubl ...

  8. caffe中根据 *_train_test.prototxt文件生成 *_deploy.prototxt文件 (转载)

    见博客:http://blog.csdn.net/u010417185/article/details/52137825

  9. ref:Mysql授权远程登陆

    ref:https://blog.csdn.net/qq_26710805/article/details/79776897 在Windows环境上操作.步骤如下: 1. 打开cmd窗口,登陆mysq ...

  10. Cobbler图文详解安装及遇到的问题说明

    一.介绍 Cobbler是一个使用Python开发的开源项目,通过将部署系统所涉及的所有服务集中在一起,来提供一个全自动批量快速建立linux系统的网络环境, Cobbler提供了DHCP管理,YUM ...