matplotlib的使用(上)

1399-温同学

发表文章数:70

首页 » 数据科学库 » 正文

from matplotlib import pyplot as plt

x = range(2,26,2)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
plt.plot(x, y)
plt.show()

  输出
matplotlib的使用(上)
2 指定图像大小与刻度
  我们希望,能指定生成图像的大小,那么这里可以使用plt.figure()函数,在该函数中指定图像的大小。
  plt.figure(figsize=(a, b), dpi=dpi)
  figsize 设置图形的大小,a 为图形的宽, b 为图形的高,单位为英寸,dpi 为设置图形每英寸的点数。在plt.figure()后面的命令,都在figure1中,直到下一条figure命令出现,新开启一张图像(figure2)。
  由于我们指定x从2到24,所以我们希望横坐标以2位刻度,使用plt.xticks()函数,括号内为可迭代对象。

from matplotlib import pyplot as plt

y = [15,13,14.5,17,20,25,26,26,27,22,18,15]

# 设置图像大小
plt.figure(figsize=(10, 4), dpi=80)
# 10英寸宽,5英寸高,输出分辨率为80(每英寸上可产生的点数)
# 在本程序中,figure函数只出现一次,因此绘制的图形都在figure1中

# 设置x轴的刻度
_xtick_labels = range(2, 26, 2)
plt.xticks(_xtick_labels)

# 绘图
plt.plot(_xtick_labels, y)
plt.show()

  输出
matplotlib的使用(上)
  同理,也能调整y轴上的刻度,经常使用这个命令:plt.yticks(range(min(y),max(y)+1)),即先筛选出纵坐标的最大值和最小值,然后生成可迭代对象。

3 添加标签与描述信息
  如果已知10时-11时之间每分钟的温度,要绘制这段时间的温度变化图,且横坐标边需要每五分钟加显示刻度信息,即如下形式:

matplotlib的使用(上)
  要显示刻度描述信息,则需要增加在plt.xticks()添加刻度参数,图中刻度描述信息是斜的,则需设置rotation参数

from matplotlib import pyplot as plt
import random

plt.figure(figsize=(10, 4))
x = range(60)
y = [random.randint(20, 35) for i in range(60)]
# 列表生成式,前面的表达式没有i,那么i仅仅是计数,表示循环生成60次

plt.plot(x, y)
_x_ticks = ["10点{}分".format(i) for i in range(60)]

# 取步长,数字和字符串一一对应,数据的长度一样,才能显示字符串
plt.xticks(x[::5], _x_ticks[::5], rotation=45) # rotation表示字符串的旋转角度

plt.show()

  输出
matplotlib的使用(上)
  可以看到,图像无法显示中文。
  由于matplotlib默认不支持中文字符,默认的英文字体无法显示汉字。如果要显示汉字,可以通过以下两行代码实现:

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

matplotlib的使用(上)
  修改后的绘图程序为:

from matplotlib import pyplot as plt
import random
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

plt.figure(figsize=(10, 4))
x = range(60)
y = [random.randint(20, 35) for i in range(60)]
# 列表生成式,前面的表达式没有i,那么i仅仅是计数,表示循环生成60次

plt.plot(x, y)
_x_ticks = ["10点{}分".format(i) for i in range(60)]

# 取步长,数字和字符串一一对应,数据的长度一样,才能显示字符串
plt.xticks(x[::5], _x_ticks[::5], rotation=45) # rotation表示字符串的旋转角度

plt.show()

  输出
matplotlib的使用(上)
4 添加图片标题,坐标轴标签

  在plt.show()之前加上这么几句

plt.xlabel("时间")
plt.ylabel("温度 单位(℃)")
plt.title("10点到12点每分钟的气温变化情况")

  输出
matplotlib的使用(上)
5 练习
假设大家在30岁的时候,根据自己的实际情况,统计出来了从11岁到30岁每年交的女(男)朋友的数量如列表a,请绘制出该数据的折线图,以便分析自己每年交女(男)朋友的数量走势
a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
要求:
  y轴表示个数
  x轴表示岁数,比如11岁,12岁等
要有坐标轴标签、要有标题。

未经允许不得转载:作者:1399-温同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《matplotlib的使用(上)》 发布于2021-02-20

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录