import time
from matplotlib.font_manager import FontProperties
from matplotlib import pyplot as plt
# plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
# C:\Windows\Fonts 我在winows字体中随便选了一个 用来解决中文乱码
font=FontProperties(fname=r'./STXINGKA.TTF',size=20)
import numpy as np
plt.figure(figsize=(16,9),dpi=60)
def test_zhe():
# 画一个折线图。
# x=np.linspace(0,2*np.pi,40)
x=np.linspace(1,20,40)
y1=np.random.randint(-20,50,size=40)
y2=np.random.randint(-20,50,size=40)
y3=np.random.randint(-20,50,size=40)
plt.plot(x,y1,label='y1上课')
plt.plot(x,y2,label='y2')
plt.plot(x,y3,label='y3')
plt.xlabel("x轴",fontproperties=font)
plt.ylabel("y轴",fontproperties=font)
plt.title("标题",fontproperties=font)
plt.legend(bbox_to_anchor=(1,1), loc='upper right', borderaxespad=0)
# 修改文字
leg = plt.gca().get_legend() #或leg=ax.get_legend()
ltext = leg.get_texts()
# plt.setp(ltext, fontsize=12,font=font)
plt.setp(ltext,font=font)
# 修改刻度
ax = plt.gca()
# plt.xlim(-0.5, 11)
# 把x轴的刻度范围设置为-0.5到11,因为0.5不满一个刻度间隔,所以数字不会显示出来,但是能看到一点空白
# plt.ylim(-5, 110)
plt.show()
plt.savefig("test.jpg")
plt.close()
def plot_have_sub():
plt.figure(figsize=(16, 9), dpi=60)
# 一个图均匀分布在[0,50] 共100个
x = np.linspace(0, 50, 100)
# 将多张子图展示在一起,可以使用 subplot() 实现。即在调用 plot() 函数之前需要先调用 subplot() 函数。
# 该函数的第一个参数代表子图的总行数,第二个参数代表子图的总列数,第三个参数代表活跃区域
ax1=plt.subplot(2,1,1) # 行,列,活动区
plt.plot(x,np.sin(x),'r')
plt.xlabel("x轴",fontproperties=font)
plt.ylabel("y轴",fontproperties=font)
plt.title("标题",fontproperties=font)
ax2=plt.subplot(2,1,2)
plt.plot(x,np.cos(x),'g')
plt.xlabel("x轴2",fontproperties=font)
plt.ylabel("y轴2",fontproperties=font)
plt.title("标题2",fontproperties=font)
# 避免重叠
plt.tight_layout()
plt.show()
if __name__ == '__main__':
# 折线图,多条
test_zhe()
# 带有子图的
plot_have_sub()
网友评论