这篇文章将为大家详细讲解有关怎么在python中使用Matplotlib添加文本和标注,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
首先还是需要将要用到的模块和包导入Pycharm:
import matplotlib.pyplot as plt import matplotlib  as mpl plt.style.use (& # 39; seaborn-whitegrid& # 39;) import numpy  as np import pandas as  pd
例子:节假日对美国出生率的影响
本例中的数据可以在https://raw.githubusercontent.com/jakevdp/data-CDCbirths/master/births.csv下载。
我们先按照前面的方式进行同样的数据清洗程序,然后以图表展示这个结果:
births =, pd.read_csv (" # 39; D: \ python \ Github学习材料\ python数据科学手册\ data \ births.csv& # 39;) quartiles =, np.percentile(出生[& # 39;出生# 39;],,(25岁,50岁,75]) 亩,,sig =,四分位数[1],,0.74,*,(四分位数[2],安康;四分位数[0]) 时间=births births.query (& # 39; (births 祝辞,@mu 作用;5,*,@sig),,, (births & lt;, @mu +, 5, *, @sig) & # 39;) 出生(& # 39;天# 39;],=,出生(& # 39;天# 39;].astype (int) 时间=births.index pd.to_datetime (10000, *, births.year + ,,,,,,,,,,,,,,100,*,births.month + ,,,,,,,,,,,,,,,,births.day格式=& # 39;Y % m % d % # 39;) 时间=births_by_date births.pivot_table(& # 39;出生# 39; ,,,,,,,,,,,,,,,,,(births.index.month, births.index.day]) 时间=births_by_date.index [pd.datetime(2012年,月,日) ,,,,,,,,,,,for (月,日),births_by_date拷贝。指数)
图,,ax =, plt.subplots (figsize=(12,, 4)) births_by_date.plot (ax=ax);
当我们绘制了这样的图表来表达数据时,如果我们能对一些图表的特性作出标注来吸引读者的注意力通常是非常有帮助的。这可以通过调用plt.text或斧头。文本函数来实现,它们可以在某个特定的x, y轴位置输出一段文字:
图,,ax =, plt.subplots (figsize=(12,, 4)) births_by_date.plot (ax=ax) #,在折线的特殊位置标注文字 style =, dict类型(大?10,颜色=& # 39;灰色# 39;) ax.text(& # 39; 2012 - 1 - 1 & # 39;,, 3950年,“New 年# 39;s Day",, * *风格) ax.text(& # 39; 2012 - 7 - 4 & # 39;,, 4250年,“Independence Day",,哈=& # 39;中心# 39;,,* *风格) ax.text(& # 39; 2012 - 9 - 4 & # 39;,, 4850年,“Labor Day",,哈=& # 39;中心# 39;,,* *风格) ax.text(& # 39; 2012 - 10 - 31日& # 39;,,4600年,“Halloween",,哈=& # 39;对# 39;,,* *风格) ax.text(& # 39; 2012 - 11 - 25 & # 39;,, 4450年,“Thanksgiving",,哈=& # 39;中心# 39;,,* *风格) ax.text(& # 39; 2012 - 12 - 25 & # 39;,, 3850年,“Christmas “,,哈=& # 39;对# 39;,,* *风格) #,设置标题和y轴标签 ax.set (title=& # 39; USA  births by day of year (1969 - 1988) & # 39;, ,,,ylabel=& # 39; average daily 出生# 39; #,设置x轴标签月份居中 ax.xaxis.set_major_locator (mpl.dates.MonthLocator ()) ax.xaxis.set_minor_locator (mpl.dates.MonthLocator (bymonthday=15)) ax.xaxis.set_major_formatter (plt.NullFormatter ()) ax.xaxis.set_minor_formatter (mpl.dates.DateFormatter (& # 39; % h # 39;));
ax。文本方法接收x位置,y位置,一个字符串和额外可选的关键字参数可以用来设置颜色,大小,样式,对齐等文本格式。上面我们使用了哈=& # 39;对# 39;和公顷=& # 39;中心# 39;,这里的ha是* hirizonal对齐(水平对齐)*的缩写。要查阅更多的可用参数,请查看plt.text()和mpl.text.Text()的文档字符串内容。
转换和文本位置
在刚才的例子中,我们将文字标注根据数据位置进行了定位。有些时候我们需要将文字标注独立于数据位置而根据图表位置进行定位.Matplotlib通过转换完成这项工作。
任何的图形显示框架都需要在坐标系统之间进行转换的机制,例如,一个数据点位于,,被转换为图表中的某个位置,进而转换为屏幕上显示的像素。这样的坐标转换在数学上都相对来说比较直接,,而且Matplotlib提供了一系列的工具实现了转换(这些工具可以在Matplotlib。转换模块中找到)。