9如果列表a表示10点到12点的每一分钟的气温,如何绘制折线图:
import random
from matplotlib import pyplot as plt # 导入pyplot
x = range(0,120)
y = [random.randint(20,35) for i in range(120)]
# figsize可以设置图像的长宽比例,dpi设置值越大图像越大,反之越小,也不会失真
plt.figure(figsize=(20,10),dpi=50)
# 绘图
plt.plot(x, y)
# 展示图形
plt.show()
2.调整X或者Y轴上的刻度
_x_ticks = [“10点{}分”,format(i) for i in x if i<60]
_x_ticks += [“11点{}分”,format(i-60) for i in x if i>60]
3.plt.xticks(x[::5],_x_ticks[::5],rotation=90)
–>让列表x中的数据和_x_ticks上的数据都传入,最终会显示在x轴—对应的显示出来;
–>两组数据的长度必须保持一致,否则不能把完全覆盖整个轴;
–>使用列表的切片,每隔5个选一个数据进行展示;
–>为了让字符串不会覆盖,使用rotation选项,让字符串旋转90°。
import matplotlib.pyplot as plt
import random
import matplotlib
from matplotlib import cycler
# 设置线条,支持中文
font = {'family': 'MicroSoft YaHei',
'weight': 'bold'}
# 设置颜色红色
sample_cycler = (cycler(color=['r']) + cycler(lw=[1]))
plt.rc("font", **font)
# plt.rc('lines', linewidth=1)
plt.rc('axes', prop_cycle=sample_cycler)
# 图片长宽比例
plt.figure(figsize=(20, 8))
x = range(120)
# 在20-35之间找120个随机数
y = [random.uniform(20, 35) for i in range(120)]
plt.plot(x, y)
# 调整x轴上的字符串刻度
_x_ticks = ["10点{}分".format(i) for i in x if i < 60]
_x_ticks += ["11点{}分".format(i - 60) for i in x if i > 60]
# 取步长,数字和字符串一一对应,数据长度一样,字体旋转45°
plt.xticks(x[::5], _x_ticks[::5], rotation=45)
plt.show()
增加描述
import matplotlib.pyplot as plt
import random
import matplotlib
from matplotlib import cycler
from matplotlib.font_manager import FontProperties
# 支持的中文字体
font1 = FontProperties(fname=r"c:\windows\fonts\simsun.ttc")
# font2 = FontProperties(fname=r"c:\windows\fonts\STHUPO.TTF")
# font3 = FontProperties(fname=r"c:\windows\fonts\STCAIYUN.TTF")
# 设置线条,支持中文
font = {'weight': 'bold'}
# 设置颜色红色
sample_cycler = (cycler(color=['r']) + cycler(lw=[1]))
plt.rc("font", **font)
# plt.rc('lines', linewidth=1)
plt.rc('axes', prop_cycle=sample_cycler)
# 图片长宽比例
plt.figure(figsize=(20, 8))
x = range(120)
# 在20-35之间找120个随机数
y = [random.uniform(20, 35) for i in range(120)]
plt.plot(x, y)
# 调整x轴上的字符串刻度
_x_ticks = ["10点{}分".format(i) for i in x if i < 60]
_x_ticks += ["11点{}分".format(i - 60) for i in x if i > 60]
# 取步长,数字和字符串一一对应,数据长度一样,字体旋转45°
plt.xticks(x[::5], _x_ticks[::5], rotation=45, fontproperties=font1)
#添加描述信息
plt.xlabel("时间",fontproperties=font1)
plt.ylabel("温度",fontproperties=font1)
plt.title("温度变化",fontproperties=font1)
plt.show()