提示:菜鸟一枚,此系列文主要是用于我自己的学习记录,如果能对您有帮助,我荣幸至极。
文章目录
- 《Python数学编程》练习day012: matplotlib(2)
- 前言
- 一、图例如何显示?
- 二、标签和标题的添加?
- 三、坐标轴范围的调整?
- 四、绘制好的图的导出以及会遇到的问题、问题解决方式?
- 总结
《Python数学编程》练习-day011: matplotlib(1)
前言
上接011笔记,之前已经学习使用matplotlib绘制图,但是对于一张图如何进行更为精致的绘制呢,这也是本篇学习笔记记录的内容:
- 图例:图例的显示、位置调整;
- 标签和标题的添加 ;
- 坐标轴的调整;
- 绘制好的图的导出以及会遇到的问题、问题解决方式。
提示:以下是本篇文章正文内容,下面案例可供参考
一、图例如何显示?
图例的显示 会用到一个函数——legend()函数。当然方法不知这一种,也可以在 plot 函数里以「键 - 值」的形式增加一个参数,实现添加图例。
这里之介绍使用legend()函数实现图例的添加,实现代码如下:
from pylab import plot, show, legend
# 2000年、2006年、2012年月平均温度
nyc_temp_2000 =[31.3, 37.3, 47.2, 51.0, 63.5, 71.3, 72.3, 72.7, 66.0, 57.0, 45.3, 31.1]
nyc_temp_2006 =[40.9, 35.0, 49.2, 58.0, 67.5, 79.3, 82.3, 62.7, 66.0, 57.0, 48.3, 32.1]
nyc_temp_2012 =[37.3, 38.3, 57.2, 58.0, 66.5, 78.3, 79.3, 82.7, 60.0, 59.0, 55.3, 41.1]
# 利用range()函数生成月份作为x轴
months = range(1, 13)
# 绘制图形
plot(months, nyc_temp_2000, months, nyc_temp_2006, months, nyc_temp_2012)
# 图例,使用legen()函数的第二参数 loc = ''调整图例的位置
legend([2000, 2006, 2012], loc = 'best')
show()
运行结果如下:
代码之中,legend()函数将标识图图形上的每条线的标签列表作为参数,注意输入顺序与plot()函数中的输入的列表顺序要一致。
此外,图例的位置是可以改变的,通过legend()函数中的第二个参数loc = ’ ',进行实现位置的变动:
- 默认位置是图形的右上角;
- 输入loc = 'best’会自动显示在最佳位置;
- 输入loc = ‘lower center’、loc = ‘center left’、loc = ‘upper left’ 分别对应:中下、左中、左上。
二、标签和标题的添加?
标签和标题的添加,主要依靠一下几个函数来实现:
- xlable()函数:给x轴添加标签;
- ylabel()函数:给y轴添加标签;
- title()函数:给图形添加标题
实现代码如下:
from pylab import plot, xlabel, ylabel, title, legend, show
# 2000年、2006年、2012年月平均温度
nyc_temp_2000 =[31.3, 37.3, 47.2, 51.0, 63.5, 71.3, 72.3, 72.7, 66.0, 57.0, 45.3, 31.1]
nyc_temp_2006 =[40.9, 35.0, 49.2, 58.0, 67.5, 79.3, 82.3, 62.7, 66.0, 57.0, 48.3, 32.1]
nyc_temp_2012 =[37.3, 38.3, 57.2, 58.0, 66.5, 78.3, 79.3, 82.7, 60.0, 59.0, 55.3, 41.1]
# 利用range()函数生成月份作为x轴
months = range(1, 13)
# 绘制图形
plot(months, nyc_temp_2000, months, nyc_temp_2006, months, nyc_temp_2012)
#x轴标签
xlabel('Month')
# y轴标签
ylabel('Temprature')
# 标题
title('Average monthly temperature in NYC', loc = 'center')
# 图例,使用legen()函数的第二参数 loc = ''调整图例的位置
legend([2000, 2006, 2012], loc = 'best')
show()
运行结果如下:
title()函数中第二个参数loc = ’ '只支持标题的这三个位置: supported values are ‘left’, ‘center’, ‘right’,否则会进行报错。
三、坐标轴范围的调整?
坐标轴调整,主要依靠一下两种方式来实现:
- 使用axis()函数通过xmin=、xmax=、ymin=、ymax= 来调节x、y轴;
- 也可以直接使用数组来调整x、y轴范围。例如axis([0, 10, 0, 20]), 这是把x轴的范围设置为(1, 10),把y轴的范围设置为(0, 20)。
实现代码如下:
from pylab import plot, xlabel, ylabel, title, legend, show, axis
# 2000年、2006年、2012年月平均温度
nyc_temp_2000 =[31.3, 37.3, 47.2, 51.0, 63.5, 71.3, 72.3, 72.7, 66.0, 57.0, 45.3, 31.1]
nyc_temp_2006 =[40.9, 35.0, 49.2, 58.0, 67.5, 79.3, 82.3, 62.7, 66.0, 57.0, 48.3, 32.1]
nyc_temp_2012 =[37.3, 38.3, 57.2, 58.0, 66.5, 78.3, 79.3, 82.7, 60.0, 59.0, 55.3, 41.1]
# 利用range()函数生成月份作为x轴
months = range(1, 13)
# 绘制图形
plot(months, nyc_temp_2000, months, nyc_temp_2006, months, nyc_temp_2012)
#x轴标签
xlabel('Month')
# y轴标签
ylabel('Temprature')
# 标题
title('Average monthly temperature in NYC', loc = 'center')
# 图例,使用legen()函数的第二参数 loc = ''调整图例的位置
legend([2000, 2006, 2012], loc = 'best')
# 使用axis()函数调整坐标轴的数值区间
axis([0.0, 13, 0.0, 90.00])
show()
运行结果如下:
调整之前:
四、绘制好的图的导出以及会遇到的问题、问题解决方式?
图形的导出主要使用函数savefig()来实现
实现代码如下:
#解决保存图片不显示的问题
import matplotlib
matplotlib.use('TkAgg')
# 这种方式不能解决jupyter notebook savefig()不显示图片的问题:在头部添加 %matplotlib inline
import matplotlib.pyplot as plt
# 2000年、2006年、2012年月平均温度
nyc_temp_2000 =[31.3, 37.3, 47.2, 51.0, 63.5, 71.3, 72.3, 72.7, 66.0, 57.0, 45.3, 31.1]
nyc_temp_2006 =[40.9, 35.0, 49.2, 58.0, 67.5, 79.3, 82.3, 62.7, 66.0, 57.0, 48.3, 32.1]
nyc_temp_2012 =[37.3, 38.3, 57.2, 58.0, 66.5, 78.3, 79.3, 82.7, 60.0, 59.0, 55.3, 41.1]
# 利用range()函数生成月份作为x轴
months = range(1, 13)
# 绘制图形
plt.plot(months, nyc_temp_2000, months, nyc_temp_2006, months, nyc_temp_2012)
#x轴标签
plt.xlabel('Month')
# y轴标签
plt.ylabel('Temprature')
# 标题
plt.title('Average monthly temperature in NYC', loc = 'center')
# 图例,使用legen()函数的第二参数 loc = ''调整图例的位置
plt.legend([2000, 2006, 2012], loc = 'best')
plt.show()
plt.savefig('C:/Users/zhangfei/Desktop/python_math/nyc_temperature.jpg')
运行结果如下:
使用savefig()函数对输出绘制扥图形进行保存,有两种方式:
- 默认savefig(‘图片名称.格式’):在windows系统通常会被保存在python安装的地方;
- 指定路径保存:savefig(‘D:/图片名.格式’)
此外,在导出的时候会出现只有图位而为图形内容的情况,这时候使用:
import matplotlib
matplotlib.use('TkAgg')
进行解决,除此之外还有其他方式,这里不做赘述,代码之中有标注,但是没这个好用,解决问题的成功率没这个靠谱。
总结
基于matplotlib:
- 图例:图例的显示、位置调整;
- 标签和标题的添加 ;
- 坐标轴的调整;
- 绘制好的图的导出以及会遇到的问题、问题解决方式;
- 除了使用pylab之外,还可以使用matplotlib.pyplot,绘制图形。