赞
踩
- import matplotlib.pyplot as plt
- #下面三行解决中文字的显示问题
- from pylab import *
- mpl.rcParams['font.sans-serif'] = ['SimHei']
- mpl.rcParams['axes.unicode_minus'] = False
-
- #设置生成的图片的大小
- plt.rcParams['figure.figsize'] = (8.0, 8.0)
- plt.rcParams['savefig.dpi'] = 300 #图片像素
- plt.rcParams['figure.dpi'] = 300#设置图片分辨率
-
-
-
-
- #设置轴向尺度
- plt.axis([0,5,0,20])
- #设置图像主题
- plt.title('my first plot',fontsize=20)
- #设置x轴表示含义
- plt.xlabel('Count')
- #设置y轴表示含义
- plt.ylabel('Square value')
- #图片插入内容,位置和内容自定义
- plt.text(1,1.5,'First')
- plt.text(2,4.5,'Second')
- plt.text(3,9.5,'Third')
- plt.text(4,16.5,'Five')
- #给图片设置网格
- plt.grid(True)
- #设置图片中函数的秒数,这里设置了表格
- plt.text(1.1,12,r'$y=x^2$',fontsize=20,bbox={'facecolor':'yellow','alpha':0.2})
- #图片里的点,这里是三种不同的图形表示
-
- plt.plot([1,2,3,4],[1,4,9,16],'bo')
-
- plt.plot([1,2,3,4],[0.8,3.5,8,15],'g^')
- plt.plot([1,2,3,4],[0.5,2.5,4,12],'b*')
- #图片标题,会对不通的图形代表的含义作出解释说明
- plt.legend(['First series','Second series','Third series'],loc=2)
- #图片保存,格式自己定义
- plt.savefig('my_chart.png')
-
-
-
-
-
-
- ########################################################################
-
-
-
- 另外针对多画布问题
- plt.subplot(221) # 将figure设置的画布大小分成几个部分,参数‘221’表示2(row)x2(colu),即将画布分成2x2,两行两列的4块区域,1表示选择图形输出的区域在第一块,图形输出区域参数必须在“行x列”范围 ,此处必须在1和2之间选择——如果参数设置为subplot(111),则表示画布整个输出,不分割成小块区域,图形直接输出在整块画布上
- plt.plot(y,xx) # 在2x2画布中第一块区域输出图形
- plt.subplot(222)
- plt.plot(y,xx) #在2x2画布中第二块区域输出图形
- plt.show()
- plt.subplot(223) #在2x2画布中第三块区域输出图形
- plt.plot(y,xx)
- plt.subplot(224) # 在在2x2画布中第四块区域输出图形
- plt.plot(y,xx)
- #==============================
-
- plt.plot(x,y) # 只提供x轴,y轴参数,画最简单图形
-
-
-
-
-

运行以后会出现下面图形(因为代码里设置的大小参数和轴的尺度不唯一,所以图形仅供参考)
这些只是最基本最简单的操作,主要是牢记各个部分的函数名称,应该不难操作
下面是一个更具体一点的实例
- import pandas as pd
- columns=['语文','数学','英语','化学','物理','体育']
-
- frame=pd.read_csv('D:\example\score.csv',sep=',',names=columns)
-
- import matplotlib.pyplot as plt
- from pylab import *
- mpl.rcParams['font.sans-serif'] = ['SimHei']
- mpl.rcParams['axes.unicode_minus'] = False
- plt.rcParams['figure.figsize'] = (8.0, 8.0)
- plt.rcParams['savefig.dpi'] = 300 #图片像素
- plt.rcParams['figure.dpi'] = 300
-
- fig,axes=plt.subplots(2,1)
- #plt.axes=([0,20,0,200])
- # plt.ylabel()
- # plt.xlabel('成绩')
- axes[0].set_xlabel('学生')
- axes[0].set_ylabel('分数')
- axes[0].set_title('考试成绩一览表')
- plt.title('考试成绩一览表')
- frame.plot.bar(ax=axes[0],alpha=0.7)
- frame.plot.barh(ax=axes[1],alpha=0.7)
-
- frame.plot()

生成一下三张图片,图片未经雕琢,见谅!
再举一个事例加以说明
- from matplotlib import font_manager
-
- plt.rcParams['figure.figsize'] = (4.0, 3.0)
-
- x=np.arange(-np.pi,np.pi,000.1)
-
- y=sin(x)
-
- plt.title('函数图像')
-
- plot(x,y,lw=2,c='r',ls='-.',label='数值')
- #设置轴向标注
- plt.xlabel('数学',fontsize=20)
-
- plt.ylabel('学生',fontsize=20)
- #设置x,y轴的上下限
- plt.xlim(-np.pi,np.pi)
-
- plt.ylim(-1,1)
- 设置关键刻度
- plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi])
- #添加文字,前面是坐标,第二个是内容,后面是字体格式
- plt.text(0,0.5,'dont move',fontdict={'size':'16','color':'b'})
-
- #添加标注,xy表示标注箭头想要指示的点,xytext:描述信息的坐标,arrowprop表示箭头的样式
- plt.annotate('note!!',xy=(-np.pi,0),xytext=(-np.pi,2),fontsize=16,arrowprops=dict(facecolor='black',shrink=0.01))
-
- z=x**3
-
- plot(x,z,label='函数')
-
- plt.legend(loc=(1,0))
-

深入一点:
- a=['猩球崛起3:终极之战','敦刻尔克','蜘蛛侠:英雄归来','战狼2']
- b_16=[15746,24456,416,1556]
- b_15=[15653,666,5662,365]
- b_14=[1646,3666,3662,552]
- bar_width=0.2
- x_14=list(range(len(a)))
- x_15=[i+bar_width for i in x_14]
- x_16=[i+bar_width*2 for i in x_14]
- plt.figure(figsize=(20,8),dpi=80)
- ax=plt.subplot(211)
- ax.set_title('Counter')
- ax.set_xlabel('x')
- plt.bar(range(len(a)),b_14,width=bar_width,label='9月14日')
- plt.bar(x_15,b_15,width=bar_width,label='9月15日')
- plt.bar(x_16,b_16,width=bar_width,label='9月16日')
- plt.legend()
- plt.xticks(x_15,a)

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。