学习matplotlib
程序员文章站
2022-07-14 10:09:51
...
#! encoding ='utf-8'
from matplotlib import pyplot as plt
import random
from pylab import *
from numpy.random import randn
#由于画图中可能会出现中文,解决办法:1、增加myfont设置,从计算机里找到一个系统字体文件,把matplotlib
# 默认的字体优先指向这个文件,用rcParams来规避异常符号的情况,设置好字体文件后,还要在具体涉及到的中文里,用 U''的形式
# 把中文字用引号括起来,表示utf-8的形式,同时参数后,加上‘,fontproperties = myfont’,如果是图例的话
# 用‘, prop = myfont’代替‘,fontproperties = myfont’,注意英文字符不需要这样麻烦
# plt.figure()
# plt.plot(randn(500).cumsum(),'k--')
#fig,axes = plt.subplots(2,3)
myfont = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')
matplotlib.rcParams['axes.unicode_minus'] = False
# 画一个子图,(1,1)表示这个图就一个(1行1列)
fig,ax = plt.subplots(1,1)
# ax.plot(randn(500).cumsum(),'k--')
# h是蓝色字体,k是黑色字体,y是黄色,r是红色,h是蓝色等等 ‘*’表示用这种符号画折线,‘.’表示用点画线
#值得说明的是:在这里的颜色和mark标记也可以用另外一种方式比如下面一种样例
# plt.plot(x, y, linewidth = '1', label = "test", color=' coral ', linestyle=':', marker='|')
# 生成3条随机数组成的图线
ax.plot(randn(500).cumsum(),'y--',label=u'我爱你')
ax.plot(randn(500).cumsum(),'r*',label=u'我不爱你')
ax.plot(randn(500).cumsum(),'k.',label=u'去死')
# 对图线作为图例说明
ax.legend(loc = 'best',prop = myfont)
# 设置横坐标的点,也可以用字符串的形式
ax.set_xticks([0,100,200,300,400,500])
# 设置图标标题
ax.set_title(u"python试验 随机数作图",fontproperties = myfont)
# 设置横坐标和纵坐标的名称
ax.set_xlabel(u'数字刻度',fontproperties = myfont)
ax.set_ylabel(u'随机数变化',fontproperties = myfont)
# 可以对坐标中某个值可以用annotate标记说明,目前我没有找到找最大值的方式标记
# 此代码的问题:第一个标签不显示,不知道为什么?
# ax.set_xticklabels(['a','b','c','d','e','f','g'])
plt.show()