1. 需要让刻度线在上下左右都显示,并且刻度向内,如下图所示

可以通过如下步骤实现:

首先使用如下命令找到matplotlib配置文件存在的位置

import matplotlib
print(matplotlib.matplotlib_fname())

接着在命令行下使用vim 打开配置文件,找到ticks部分

将xtick.top,ytick.right改为True,xtick.direction,ytick.direction改为in

2. 绘图时要注意绘图时要导出axes

画一个图使用

ax = plt.subplot(111)

多个图就每个subplot都给一个ax,画plot图,scatter图都很简单 ,绘制单个变量的分布往往需要画step图而不是hist图,命令如下

zgrid = np.linspace(12,16,11) #给定一个分bin的框架
hx, xedge = np.histogram(data,bins=zgrid) #hx是每个bin的高度,xedge是x轴每一个节点的坐标,所以xedge比hx长度大1
plt.step(xedge[:-1] ,hx,color='black',where='post')

如果是多个变量的分布画到一张图上,需要使用hist命令,并且调整arfa参数,这个表示的是透明度,越低越透明

画二维直方图(也就是密度图)需要使用

plt.hist2d(x,y,200,cmin=1,cmap='rainbow')

200表示把全图分割为200个格子,如果格子里面的点低于cmin的数值,则不会显示这个格子

画图时常用的功能通过如下参数实现:

(1)为每一个图加label:

plt.scatter(x, y, 1,label='1')
plt.scatter(x, y, 1,label='2')
plt.legend(prop={'size':20})

legend里面的prop参数可以制定label的字体,一般我们只需要把字体放大,所以我这里只用到了size参数

(2)修改坐标轴字体的大小:

在画图前输入

plt.tick_params(labelsize=30)

(3)给定x,y轴的label,修改x,y轴label的大小:

plt.xlabel('X',{'size':20})
plt.ylabel('Y',{'size':20})

(4) 设置x,y上下限

plt.xlim(0,2)
plt.ylim(2,6)

如果输入的第一个数字比第二个大,就会把相应的轴反转,比如

plt.xlim(2,0)

会使得x 轴从2到0,而不是默认的从0到2

(5)设置坐标轴对数显示

plt.xscale('log')
plt.yscale('log')

(6)在图中加文字

plt.text(x=10.5, y=-4, s='dwarfs',fontsize=20)

x,y对应的就是文字在图中的位置,s就是想插入的文字,fontsize是用来修改字体大小的

(7)为颜色图加colorbar

画完图之后加上

cb = plt.colorbar()

因为前面设置了刻度向里,所以这里colorbar显示的会向左而不是常见的向右,所以我们要设置

cb.ax.tick_params(labelsize=20,direction='out',size=6)

labelsize 表示colorbar显示的文字的字体大小,direction表示刻度向外还是向内(也就是向右还是向左),size表示刻度的长度,默认显示的刻度值不一定吻合我们的想法,我们可以使用如下命令来让colorbar显示我们想要显示的刻度

cb.set_ticks([1,10,100,1000,10000])

让colorbar显示文字,比如显示一个[Fe/H]

cb.set_label('[Fe/H]', size=20)

我们可能想要让colorbar不是线性显示而是对数或者其他的方式显示,这可以这样来实现

from matplotlib.colors import FuncNorm
import matplotlib as mpldef _forward(x):return np.log10(x)def _inverse(x):return 10**xmy_norm = mpl.colors.FuncNorm((_forward, _inverse))
#定义一个你自己想要的colorbar显示方式

然后在画图时候使用

plt.scatter(x,y,1,norm = my_norm, rasterized=True)

当然对数很简单,matplotlib有一个自带的norm种类——colors.LogNorm(),令norm等于他即可,其中rasterized参数是将图片光栅化,也就是模糊处理,如果图片很大的时候(10M以上),需要用到这个命令,要不然图片太大使用LaTeX编译会很费时间而且没必要

(8)让x,y显示我们想要显示的刻度

plt.xticks([5,10,15])
plt.yticks([-40,-20,0,20,40])

(9)多个子图的坐标轴放置

如果画了多个子图,坐标轴放大的情况下,往往会叠到一起,我们在全部子图画完之后,使用如下命令

plt.gcf().set_size_inches(9, 6.8) # 设置画布的大小
plt.tight_layout() #使得label互相不干扰

3. 设置次刻度值

次刻度值也就是第一个图中细小的刻度值,他通过如下命令实现

ax=plt.subplot(111)
plt.tick_params(labelsize=16)
plt.hist2d(R,Z,220,cmin=1,cmap='rainbow', norm = colors.LogNorm(),rasterized=True)xmajorLocator = MultipleLocator(10)  # 将x主刻度标签设置为10的倍数
xminorLocator = MultipleLocator(2)   # 将x次刻度标签设置为2的倍数
ymajorLocator = MultipleLocator(20)  # 将y轴主刻度标签设置为20的倍数
yminorLocator = MultipleLocator(4)   # 将此y轴次刻度标签设置为4的倍数
ax.xaxis.set_major_locator(xmajorLocator)
ax.xaxis.set_minor_locator(xminorLocator)
ax.yaxis.set_major_locator(ymajorLocator)
ax.yaxis.set_minor_locator(yminorLocator)

注意主刻度值的间隔必须与tick的一样,要不然图片的刻度值会很丑,主次刻度值的间隔一般是5:1

主次刻度值的默认长度也不够长,你往往需要加长他们,同样是修改配置文件,修改配置文件里面的这几个参数即可(同样在ticks部分)

#xtick.major.size:    16      # major tick size in points
#xtick.minor.size:    6       # minor tick size in points
#ytick.major.width:   16      # major tick size in points
#ytick.minor.width:   6       # minor tick size in points

或者在画图时使用

matplotlib.rcParams['xtick.major.size'] = 16
matplotlib.rcParams['ytick.minor.size'] = 6
matplotlib.rcParams['xtick.major.size'] = 16
matplotlib.rcParams['ytick.minor.size'] = 6

来设置当前脚本文件的画图设置

4. 修改坐标轴刻度数字的显示方式

当数字比较大的时候,比如刻度显示10000显然是不合适的,我们应该显示100K,或者数字的小数部分有多有少,我们需要协调他们,使得他们的显示方式一致

from matplotlib.ticker import FuncFormatter
def killions(x, pos):return '%1.0fK' % (x*1e-3)my_formatter = FuncFormatter(killions)

画完图后加上

ax.yaxis.set_major_formatter(my_formatter)

'%1.0K'就是以K的形式表现,并且小数部分不显示,这个其实是Python的format显示

5. 残差图需要有一条y=0的虚线

画完图后加一个命令

plt.hlines(0,-2.5,0.7,'black','dashed')

表示在y=0,x从-2.5到0.7显示一条黑色的虚线

天文学论文绘图注意事项相关推荐

  1. 论文绘图软件和论文赶稿注意事项+ESLWriter自助写论文+论文排版和LaTeX书写方法介绍

    1.论文绘图软件 第10名:锯齿风Matlab Matlab只排在第十位是因为本来它就不是一个用来做画图的软件.人家的主要功能是矩阵操作.统筹优化.数学实验.仿真模拟(此处省略一万字)等等好吗?用ma ...

  2. 计算机工程硕士论文全套,计算机工程硕士 论文写作注意事项

    对于计算机工程硕士专业的人来说,关于计算机工程硕士的论文写作难度是相当的高的.尤其是在参加论文答辩的时候,是否能够顺利的通过论文答辩,跟计算机工程硕士论文写作的内容以及观点也是有很大的关系的.为了能够 ...

  3. 这些论文绘图软件,你一个都不会用

    这些论文绘图软件,你一个都不会用 量化研究方法 引言 众所周知,高水平的配图可以令论文.报告等显得耳目一新,瞬间提高一个档次.写文章.做报告,搞好配图已经成为了又一项标配技能.从大量的数据资料中获得所 ...

  4. 论文总结 -论文写作注意事项(持续更)

    论文写作注意事项 论文写作应具备的思维 科研写作的原则 如何写? 格式规范 文稿修改与编辑 学术论文中的常见问题 一.重复与赘述 二. 主动语态与被动语态 三.强调性的语气加强词 (intensifi ...

  5. matlab学位论文绘图美化工具_推荐几个超级好用的工具,让你在论文中画出漂亮的插图...

    每次我们看到优秀期刊中的文章,比如<Nature>.<Cell>,我们都会被文章中的插图惊艳到.再瞅瞅我们自己论文中的插图,总觉得比别人low了好几个c层次.一个好看的插图绝对 ...

  6. 华工计算机答辩,华南理工大学学位论文答辩注意事项!

    为方便 1. 华南理工大学论文选题涉及国家秘密项目的学位申请人须在开题前已填写<学位论文定密审批表>并办理定密手续.经审定为涉密论文的学位申请人须严格遵守<华南理工大学涉密学位论文管 ...

  7. 【论文写作注意事项】

    @论文写作注意事项-30条 论文写作注意事项 摘要是一个独立的部分,一般不引用参考文献.问题及其重要性:本句可以说明问题所属的领域,解释最重要的概念,或者强调问题的重要性,要针对性强,有营养. 已有工 ...

  8. 论文修改注意事项(中文)

    论文修改注意事项(中文) 撰写论文主要参考所投期刊的论文模板,本文罗列了一些关于中文期刊的修改细节,仅供参考,未尽之处敬请谅解. 解释公式的段落,首行不缩进,式中后面使用: ex: 不缩进式中: ψ ...

  9. matlab学位论文绘图美化工具_学术论文绘图matlab版

    论文绘图是完成学术论文的一个重要环节,美观的插图能够更好地阐述结论和有效地提升文章质量.学术论文中常见的插图包括:框架图,算法说明图,数据分析图,以及实物图.常见的绘图工具中包括Matlab,pyth ...

最新文章

  1. 计算机视觉不可能凉!
  2. VUE2.X组件之间通信的2种方式(针对子组件值变化去改变相应父组件的值)
  3. (转载)netstat -r查看路由表时Flags的含义
  4. 第二十三讲 狄拉克函数(冲激函数)(补充)
  5. css sprite讲解与使用实例
  6. 第一阶段 XHTML.定位样式
  7. bootstrap获取弹框数据_Bootstrap模态弹出框的实例教程
  8. 操作系统之计算机系统概述:2、操作系统的特点(并发、共享、虚拟、异步)
  9. linux rabbitmq 远程登录
  10. Unity3d之HashSlash学习笔记之(二)--角色基础类的构建
  11. python排课问题_教育机构如何解决排课问题?
  12. LINUX下载编译nasm
  13. QQ配置文件解密(转)
  14. 《Android框架揭秘》——2.1节主机环境构成
  15. 计算机基础知识五笔,教你简单快速学习五笔打字
  16. 『实用教程』四种超实用的超级记忆法以及记忆训练案例
  17. 使用域名访问服务器网站,使用域名访问网站是啥意思
  18. 10月17日 Spring Cloud 周三
  19. MSP430加密代码保护
  20. 计算机中级改进的具体措施,改进职高计算机教学的几点措施

热门文章

  1. matlab画柱形图
  2. excel文件被写保护怎么解除_如何去掉Excel表格中的密码保护?
  3. STM32总线外设分布
  4. 百度地图js轨迹展示
  5. 游戏建模师具体干什么!30岁后进入行业算不算晚?
  6. 中国各个省份的id代号是多少?各省简称是什么?
  7. 【两化融合】新一代信息技术怎样与制造业深度融合?
  8. MYSQL----innoDB存储引擎
  9. vue通用后台管理(登录页面)
  10. git 不显示远端分支问题