matplotlib 折线图的绘制
张三随着年龄的增加,朋友数量的变化
x年纪=(11,31)
y个数=[1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]
from matplotlib import pyplot as plt
from matplotlib import font_manager
#如果不设置中文的话,其他代码运行正常;但如果增加中文设置,则报错RuntimeWarning: Glyph 21451 missing from current font. font.set_text(s, 0, flags=flags),于是需要添加下两行代码(我也不知道是什么意思)
plt.rcParams['font.sans-serif'] = ['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus'] = False #运行配置参数总的轴(axes)正常显示正负号(minus)#这两行需要手动设置
my_font = font_manager.FontProperties(fname="C:/Windows/Fonts/STXIHEI.TTF")#本地font的地址
#设置图片大小
fig = plt.figure(figsize=(9, 9), dpi=80)#figure图形图标的意思,在这里指我们要画的图;dpi像素
x = (range(11, 31))
y = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]
#绘图
plt.plot(x, y) #传入x,y,通过折线图绘制图形
#绘制x轴的刻度
_xtick_labels = ["{}岁".format(i) for i in range(11, 31)]
#绘制x轴的刻度
plt.xticks(list(x)[::], _xtick_labels[::], rotation=270, fontproperties=my_font)
plt.xlabel("岁数")
plt.ylabel("个数")
plt.title("随着年纪的增加男/女朋友的个数")
#保存
plt.savefig("./sig_size.png")
plt.show()#展示图形
--------------------------------------------------------------
另一道题
10点到12点之间,每分钟的温度变化
a=[random.randint(20,35) for i in range(120)]
from matplotlib import pyplot as plt
from matplotlib import font_manager
import numpy as np #可以直接import random
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
my_font=font_manager.FontProperties(fname="C:/Windows/Fonts/STXIHEI.TTF")
fig=plt.figure(figsize=(15,10),dpi=80)
x=(range(120))
y=[np.random.randint(20,35)for i in range(120)]
plt.plot(x,y)
#以下是重点!!!!!
#为了能够显示时间字符串,设置一下x轴
_x=list(x)[::5]
_xtick_label = ["10点{}分".format(i) for i in range(60)]
_xtick_label += ["11点{}分".format(i-60) for i in range(60,120)]
#使得_x和_xtick_label一一对应
plt.xticks(_x,_xtick_label[::5],rotation=90)#ratation旋转
#_x和_xtick_label要一一对应,检查步长是否一致。
plt.yticks(y)
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("10点到12点每一分钟的气温")
plt.show()