在图中注释兴趣点(Matplotlib)

时间:2017-05-07 15:19:17

标签: python matplotlib annotations

我想在我的图表中的兴趣点注释并绘制一条线。我已经为它编写了一个代码,它完成了这项工作。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
fsource=('/Users/Maxwell/Desktop/OES data.xlsx')
df=pd.read_excel(fsource,header = 1, parse_cols = "C:D",names=['Wavelength','Intensity'])
fig1 = plt.figure()
f, ax = plt.subplots(1, figsize = (8,4))
ax.set_xlabel('Wavelength',fontsize=15)
ax.set_ylabel('Intensity',fontsize=15)
ax.plot(df['Wavelength'],df['Intensity'],color='red')
ax.set_xlim(xmin=400,xmax=800)
ax.set_ylim(ymin=0,ymax=5000) #Specify the max and min of y axis
ax.tick_params(axis= 'both', labelsize=12) #fontsize of x & y ticks as 12
ax.axvline(x= 604,color='black',ymin=0.05, ymax=0.5) #x=604 is my point of interest.
ax.annotate('POF-1', xy=(604, 2400),fontsize=12)
plt.show()

我对此方法/程序有一些疑问:

  1. 是否有更有效/更好的方法来完成同样的工作?(对代码的任何改进等)。

  2. 我的代码只适用于一个兴趣点' POF-1'。如果我有几个兴趣点,我将不得不逐个编号,并一次又一次地指定行的长度。我应该怎么做才能使任务自动化,以便注释和线条同时出现在所有感兴趣的点?(例如注释点x = 500,730,790等带有一些预定义的文本。)

  3. 原始文件的链接是link

    中的 OES数据

0 个答案:

没有答案