欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习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()

学习matplotlib