2013-08-09 19:04 27805人阅读 评论(1) 收藏 举报
 分类:
Python(71)  matplotlib(11)  Numpy_Scipy(14) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

  1. # -*- coding: utf-8 -*-
  2. #**********************************************************
  3. import os
  4. import numpy as np
  5. import wlab #pip install wlab
  6. import matplotlib
  7. import matplotlib.cm as cm
  8. import matplotlib.pyplot as plt
  9. from matplotlib.ticker import MultipleLocator
  10. from scipy.interpolate import griddata
  11. matplotlib.rcParams['xtick.direction'] = 'out'
  12. matplotlib.rcParams['ytick.direction'] = 'out'
  13. #**********************************************************
  14. FreqPLUS=['F06925','F10650','F23800','F18700','F36500','F89000']
  15. #
  16. FindPath='/d3/MWRT/R20130805/'
  17. #**********************************************************
  18. fig = plt.figure(figsize=(8,6), dpi=72, facecolor="white")
  19. axes = plt.subplot(111)
  20. axes.cla()#清空坐标轴内的所有内容
  21. #指定图形的字体
  22. font = {'family' : 'serif',
  23. 'color'  : 'darkred',
  24. 'weight' : 'normal',
  25. 'size'   : 16,
  26. }
  27. #**********************************************************
  28. # 查找目录总文件名中保护F06925,EMS和txt字符的文件
  29. for fp in FreqPLUS:
  30. FlagStr=[fp,'EMS','txt']
  31. FileList=wlab.GetFileList(FindPath,FlagStr)
  32. #
  33. LST=[]#地表温度
  34. EMS=[]#地表发射率
  35. TBH=[]#水平极化亮温
  36. TBV=[]#垂直极化亮温
  37. #
  38. findex=0
  39. for fn in FileList:
  40. findex=findex+1
  41. if (os.path.isfile(fn)):
  42. print(str(findex)+'-->'+fn)
  43. #fn='/d3/MWRT/R20130805/F06925_EMS60.txt'
  44. data=wlab.dlmread(fn)
  45. EMS=EMS+list(data[:,1])#地表发射率
  46. LST=LST+list(data[:,2])#温度
  47. TBH=TBH+list(data[:,8])#水平亮温
  48. TBV=TBV+list(data[:,9])#垂直亮温
  49. #-----------------------------------------------------------
  50. #生成格点数据,利用griddata插值
  51. grid_x, grid_y = np.mgrid[275:315:1, 0.60:0.95:0.01]
  52. grid_z = griddata((LST,EMS), TBH, (grid_x, grid_y), method='cubic')
  53. #将横纵坐标都映射到(0,1)的范围内
  54. extent=(0,1,0,1)
  55. #指定colormap
  56. cmap = matplotlib.cm.jet
  57. #设定每个图的colormap和colorbar所表示范围是一样的,即归一化
  58. norm = matplotlib.colors.Normalize(vmin=160, vmax=300)
  59. #显示图形,此处没有使用contourf #>>>ctf=plt.contourf(grid_x,grid_y,grid_z)
  60. gci=plt.imshow(grid_z.T, extent=extent, origin='lower',cmap=cmap, norm=norm)
  61. #配置一下坐标刻度等
  62. ax=plt.gca()
  63. ax.set_xticks(np.linspace(0,1,9))
  64. ax.set_xticklabels( ('275', '280', '285', '290', '295',  '300',  '305',  '310', '315'))
  65. ax.set_yticks(np.linspace(0,1,8))
  66. ax.set_yticklabels( ('0.60', '0.65', '0.70', '0.75', '0.80','0.85','0.90','0.95'))
  67. #显示colorbar
  68. cbar = plt.colorbar(gci)
  69. cbar.set_label('$T_B(K)$',fontdict=font)
  70. cbar.set_ticks(np.linspace(160,300,8))
  71. cbar.set_ticklabels( ('160', '180', '200', '220', '240',  '260',  '280',  '300'))
  72. #设置label
  73. ax.set_ylabel('Land Surface Emissivity',fontdict=font)
  74. ax.set_xlabel('Land Surface Temperature(K)',fontdict=font) #陆地地表温度LST
  75. #设置title
  76. titleStr='$T_B$ for Freq = '+str(float(fp[1:-1])*0.01)+'GHz'
  77. plt.title(titleStr)
  78. figname=fp+'.png'
  79. plt.savefig(figname)
  80. plt.clf()#清除图形
  81. #plt.show()
  82. print('ALL -> Finished OK')

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

示例的图形如下:

 
2
2

使用matplotlib的示例:调整字体-设置刻度、坐标、colormap和colorbar等的更多相关文章

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

    使用matplotlib的示例:调整字体-设置colormap和colorbar # -*- coding: utf-8 -*- #********************************** ...

  2. 05. Matplotlib 1 |图表基本元素| 样式参数| 刻度 注释| 子图

    1.Matplotlib简介及图表窗口 Matplotlib → 一个python版的matlab绘图接口,以2D为主,支持python.numpy.pandas基本数据结构,运营高效且有较丰富的图表 ...

  3. Matplotlib 图表的基本参数设置

    1.图名,图例,轴标签,轴边界,轴刻度,轴刻度标签 # 图名,图例,轴标签,轴边界,轴刻度,轴刻度标签等 df = pd.DataFrame(np.random.rand(10,2),columns= ...

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

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

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

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

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

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

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

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

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

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

  9. Css调整字体间距

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

随机推荐

  1. java中的向下转型

    1.父类对象可以强制转换为子类对象,但是前提是此父类对象为子类对象实例化的结果. e.g. Fruit fruit=new Apple(); Apple a=(Apple)fruit;//ok e.g ...

  2. 云服务器pip下载老失败怎么办?

    pip install -i https://pypi.douban.com/simple django==1.9

  3. DEDE整站动态化或整站静态化设置方法

    简单说下的是,网站空间小而数据库还可以的话,使用动态浏览也是不错的,但是官方的程序默认的生成静态浏览的,只要一发布文章,就会自动生成静态页面,难道做发布文章还要一个一个去更改其他的设置吗?麻烦.对于采 ...

  4. 《Think in Java》(七)复用类

    Java 中复用代码的方式就是复用类,复用类的方式有: 组合 继承 代理(并没有啥高深的含义,只是在使用类A前,新增了类B,让类B的每个方法去调用类A中对应的方法,也就是说类B代理了类A...不过我还 ...

  5. [Linq] ORM

      orm  对象关系映射框架,主要将关系数据库中的数据 ,映射成应用程序的对象.表为类名,列为类的字段. ADO.NET entity framework   在ADO.NET基础上发展出来的对象关 ...

  6. .net mvc超过了最大请求长度

    项目中遇到"超过了最大请求长度"如下图所示,是因为IIS默认请求长度4M,当请求长度大于这个值的时候报错. 修改maxRequestLength:在web.config中我们修改& ...

  7. Xcode 查找 TODO 清单

    在 Xcode 中按 Shift+Command+F,显示在项目中查找窗口,选择按正则表达式查找(Find > Regular Expression): TODO:  //\s*\bTODO\s ...

  8. 你妹的IOS7

    第一时间升级到了IOS7,想体验一把,界面卡就算了,付费的软件闪退也就罢了,耗电发烫也算球了!你妹的,连个电话都打不了了,刚说几句话就黑屏了,要你还有啥用了,果断降级,IOS6已经下载完了,刷机去!

  9. MySQL 各种引擎

    数据库中的存储引擎其实是对使用了InnoDB.HEAP(也称为MEMORY).CSV.BLACKHOLE(黑洞引擎).ARCHIVE.PERFORMANCE_SCHEMA. Berkeley.Merg ...

  10. linux shell 学习笔记--内部命令学习

    .基本命令 新手必须要掌握的初级命令 ls 基本的列出所有文件的命令.但是往往就是因为这个命令太简单,所以我们总是低估它.比如 ,用 -R 选项,这是递归选项,ls 将会以目录树的形式列出所有文件, ...