matplotlib.pyplot(数据可视化)

一,matplotlib.pyplot绘图相关的对象:

1.容器类:图(figure),坐标系(axes),坐标轴(axis),刻度(tick)
2.基础类:线(line),点(marker),文本(text),图例(legend,)网格(grid),标题(title)

二,绘图的类型:

1.线形图:plot()
2.直方图:hist()
3.条形图:bar()
4.饼图:pie()
5.散点图:scatter()
6.3d图:from mpl_toolkits.mplt3d importAxes3D
7.动态交互图:pyecharts(属第三方库需要安装)

1.线形图:plot()

In [4]:

pip show matplotlib
Name: matplotlib
Version: 3.3.4
Summary: Python plotting package
Home-page: https://matplotlib.org
Author: John D. Hunter, Michael Droettboom
Author-email: matplotlib-users@python.org
License: PSF
Location: c:\users\tx\anaconda3\lib\site-packages
Requires: numpy, kiwisolver, pyparsing, python-dateutil, pillow, cycler
Required-by: wordcloud, seaborn, scikit-image
Note: you may need to restart the kernel to use updated packages.

In [17]:

import matplotlib.pyplot as plt
plt.plot([2,10,12,4,2],[2,2,6,6,2])
plt.rcParams['font.family'] = 'STSong'  #输出中文格式
plt.title('23楼宇2班成绩',fontsize = 20)
plt.xlabel('student_number',fontsize = 15)   #x轴标签
plt.ylabel('grade',fontsize = 15)    #y轴标签
plt.axis([0,15,1,10])    #设置坐标系的x,y的取值范围,前两位表示x,后两位表示y轴
plt.savefig('../R&Q_pic/testl.jpg',dpi = 600)  #将生成的图表保存到指定的位置,dip表示图表的分辨率
plt.show()   #显示图表

(1)同一绘图区域绘制多图

In [25]:

import matplotlib.pyplot as plt
import numpy as np   #导入科学计算库

plt.rcParams['font.family'] = 'kaiti'

x = np.arange(10)    #创建一个0-9的整数序列,并将其赋给x坐标
plt.plot(x,x*x,'ro-',label = 'a')   #label的图例的标签
plt.plot(x,1.5*x,'g*-',label = 'b')
plt.plot(x,4*x,'bo-',label = 'c')
plt.plot(x,x**1.5,'mo-',label = 'd')
plt.legend()
plt.savefig('../R&Q_pic/test2.jpg',dpi = 600)  #将生成的图表保存到指定的位置,dip表示图表的分辨率
plt.show()   #显示图表

(2)多区域绘图

In [31]:

import numpy as np
import matplotlib.pyplot as plt

def f(t):
    return np.exp(-t)*np.cos(2*np.pi*t)
a=np.arange(0,5,0.02)

plt.subplot(322)
plt.plot(a,f(a))
            
plt.subplot(323)
plt.plot(a,np.cos(2*np.pi*a),'-.',color='r')        
plt.subplot(324)
plt.plot(a,np.sin(2*np.pi*a),'--',color='g')
plt.subplot(325)
plt.plot(a,np.tan(2*np.pi*a),':',color='m')
plt.savefig('../R&Q_pic/test3.jpg',dpi = 600)  #将生成的图表保存到指定的位置,dip表示图表的分辨率
plt.show()   #显示图
C:\Users\tx\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py:238: RuntimeWarning: Glyph 8722 missing from current font.
  font.set_text(s, 0.0, flags=flags)
C:\Users\tx\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py:201: RuntimeWarning: Glyph 8722 missing from current font.
  font.set_text(s, 0, flags=flags)

(3)综合案例

In [35]:

import matplotlib.pyplot as plt 
plt.figure(num = '气温趋势',figsize = (6,4))
x = ["周一","周二","周三","周四","周五","周六","周日"]
y_1 = [20,15,18,16,21,14,10]
y_2 = [12,8,14,10,13,9,4]
plt.title("一周变化趋势")
plt.xlabel("星期",fontsize = 10)
plt.ylabel("气温",fontsize = 10)
plt.xticks(fontsize = 10)
plt.yticks(fontsize = 10)
plt.plot(x,y_1,"rs--",label="最高气温",marker = 'o')
plt.plot(x,y_2,"bo:",label="最低气温")
plt.legend(fontsize = 10)
plt.grid(True)
plt.savefig('../R&Q_pic/test4.jpg',dpi = 600)  #将生成的图表保存到指定的位置,dip表示图表的分辨率
plt.show()   #显示图

2,直方图:hist()

In [39]:

import matplotlib.pyplot as plt 
import numpy as np
plt.rcParams['font.family'] = 'STSong'
datas_1 = 10 + np.random.randn(1000)
datas_2 = 12 + np.random.randn(1000)
plt.hist(datas_1, bins=30,alpha = 0.4)
plt.hist(datas_2, bins=30,alpha = 0.5)
plt.legend(['以10为中心的正态分布','以12为中心的正态分布'],\
           fontsize = 8,loc = 'upper left')
plt.title('直方图')
plt.xlabel('区间',fontsize = 10)
plt.ylabel('频数',fontsize = 10)
plt.savefig('../R&Q_pic/test5.jpg',dpi = 600)
plt.show()

3,条形图:bar()

In [47]:

import matplotlib.pyplot as plt 
plt.rcParams['font.family'] = 'STSong'
years = ["2014","2015","2016","2017","2018","2019"]
baokao_nums = [172,164.9,177,201,238,290]
luqu_nums = [54.87,57.06,58.98,72.22,76.25,79.3]
x = range(len(years))
plt.bar(x,baokao_nums,width = 0.4,color = '#0055cc')
plt.bar([i+0.4 for i in x],luqu_nums,width=0.4,alpha=0.8,color='pink')
plt.xticks([i+0.2 for i in x],years)
plt.legend(['研究生报考人数','研究生录取人数'],fontsize = 10)
plt.ylabel("人数/万人")
plt.xlabel("年份")
plt.title("研究生历年报考和录取情况",fontsize = 16)
plt.savefig('../R&Q_pic/test6.jpg',dpi = 600)
plt.show()

In [ ]:

l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值