《Python数学编程》练习-day012: 绘图(2)

《Python数学编程》练习day012: matplotlib(2)

提示→《Python数学编程》练习系列往期笔记,如下 👇:

Day1:《Python数学编程》练习-day001:斐波那契序列
Day2:《Python数学编程》练习-day002:分数操作
Day3:《Python数学编程》练习-day003:基本数学运算
Day4:《Python书序编程》练习-day004:复数
Day5:《Python书序编程》练习-day005:数值输入
Day6:《Python书序编程》练习-day006:计算整数因子
Day7:《Python书序编程》练习-day007:生成乘法表
Day8:《Python书序编程》练习-day008:测量单位转换
Day9:《Python书序编程》练习-day009:求解二次方程的根
Day11:《Python书序编程》练习-day011:matplotlib(1)


提示:菜鸟一枚,此系列文主要是用于我自己的学习记录,如果能对您有帮助,我荣幸至极。

《Python数学编程》练习-day011: matplotlib(1)

前言

上接011笔记,之前已经学习使用matplotlib绘制图,但是对于一张图如何进行更为精致的绘制呢,这也是本篇学习笔记记录的内容:

  1. 图例:图例的显示、位置调整;
  2. 标签和标题的添加 ;
  3. 坐标轴的调整;
  4. 绘制好的图的导出以及会遇到的问题、问题解决方式。

提示:以下是本篇文章正文内容,下面案例可供参考

一、图例如何显示?

图例的显示 会用到一个函数——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 = ’ ',进行实现位置的变动:

  1. 默认位置是图形的右上角;
  2. 输入loc = 'best’会自动显示在最佳位置;
  3. 输入loc = ‘lower center’、loc = ‘center left’、loc = ‘upper left’ 分别对应:中下、左中、左上。

二、标签和标题的添加?

标签和标题的添加,主要依靠一下几个函数来实现:

  1. xlable()函数:给x轴添加标签;
  2. ylabel()函数:给y轴添加标签;
  3. 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’,否则会进行报错。

三、坐标轴范围的调整?

坐标轴调整,主要依靠一下两种方式来实现:

  1. 使用axis()函数通过xmin=、xmax=、ymin=、ymax= 来调节x、y轴;
  2. 也可以直接使用数组来调整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()函数对输出绘制扥图形进行保存,有两种方式:

  1. 默认savefig(‘图片名称.格式’):在windows系统通常会被保存在python安装的地方;
  2. 指定路径保存:savefig(‘D:/图片名.格式’)

此外,在导出的时候会出现只有图位而为图形内容的情况,这时候使用:

import matplotlib
matplotlib.use('TkAgg')

进行解决,除此之外还有其他方式,这里不做赘述,代码之中有标注,但是没这个好用,解决问题的成功率没这个靠谱。

总结

基于matplotlib:

  1. 图例:图例的显示、位置调整;
  2. 标签和标题的添加 ;
  3. 坐标轴的调整;
  4. 绘制好的图的导出以及会遇到的问题、问题解决方式;
  5. 除了使用pylab之外,还可以使用matplotlib.pyplot,绘制图形。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z-Code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值