Python数据分析(二)matplotlib折线图应用实例——绘制10点到12点的气温

系列文章:
Python数据分析(一)matplotlib基础绘图和调整x轴刻度
Python数据分析(三)matplotlib折线图应用实例——自定义图形风格
Python数据分析(四)matplotlib常用统计图总结


matplotlib折线图应用实例——绘制10点到12点的气温

  • 前言
  • 一、设置中文字体
  • 二、给图像添加描述信息


前言

如果列表a表示10点到12点的每一分钟的气温,如何绘制折线图观察每分钟气温的变化情况?
a=[random.randint(20,35) for i in range(120)]


代码如下(示例):

from matplotlib import pyplot as plt
import random

x = range(0, 120)
y = [random.randint(20, 35) for i in range(120)]
plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x, y)

_xtick = ["10点{}分".format(i) for i in range(60)]
_xtick += ["11点{}分".format(i) for i in range(60)]

plt.xticks(list(x)[::10], _xtick[::10], rotation = 90)
# 列表才可以取步长
# 如果刻度线有字符串,则需要(变量, 字符串) 把数值型数据对应到字符串
# 刻度线逆时针旋转90度显示

# 让列表中x的数据和_xtick上的数据都传入,最终会在x轴上一一对应的显示出来
# 两组数据的长度必须一样,否则不能完全覆盖整个轴
# 使用列表的切片,每隔10个选一个数据进行展示
# 为了让字符串不会覆盖,使用rotation逆时针旋转90度显示

plt.show()

一、设置中文字体

代码如下(第一种引入方式):

import matplotlib
from matplotlib import pyplot as plt
import random
from matplotlib import font_manager

my_font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")
# 字体的位置mac可以从应用程序中的字符册中寻找,右键可直接在访达中显示字体名称和位置
例如:宋体fname="/System/Library/Fonts/Supplemental/Songti.ttc"

x = range(120)
y = [random.randint(20, 35) for i in range(120)]
plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x, y)

_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["11点{}分".format(i) for i in range(60)]

plt.xticks(list(x)[::10], _xtick_labels[::10], rotation = 90, fontproperties=my_font)
plt.yticks(range(20, 40, 5), fontproperties=my_font)

plt.show()

代码如下(第二种引入方式):

import matplotlib
from matplotlib import pyplot as plt
import random
from matplotlib.font_manager import FontProperties

font = FontProperties(fname="/System/Library/Fonts/PingFang.ttc", size=14)
# 字体的位置mac可以从应用程序中的字符册中寻找,右键可直接在访达中显示字体名称和位置
例如:宋体fname="/System/Library/Fonts/Supplemental/Songti.ttc"

x = range(120)
y = [random.randint(20, 35) for i in range(120)]
plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x, y)

# plt.savefig("./f1.png") 存储图片
# plt.xticks(x)
# plt.yticks(range(min(y), max(y)+1, 2))

_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["11点{}分".format(i) for i in range(60)]

plt.xticks(list(x)[::10], _xtick_labels[::10], rotation = 90, fontproperties=font)
plt.yticks(range(20, 40, 5), fontproperties=font)

plt.show()

二、给图像添加描述信息

代码如下(示例):

my_font = font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")

plt.xticks(x[::5], _x_ticks[::5], rotation = 90, fontproperties=my_font)
plt.xlabel("时间", fontproperties=my_font)
# 设置x轴的label
plt.ylabel("温度(°c)", fontproperties=my_font)
# 设置y轴的label
plt.title("10点到12点每分钟的时间变化情况", fontproperties=my_font)
# 设置title

你可能感兴趣的:(matplotlib,python,数据分析)