matplotlib.pyplot绘画

1.绘制普通的函数图像

import numpy as np
import matplotlib.pyplot as plt
data = np.arange(0,1.1,0.01)
plt.title('lines') #添加标题
plt.xlabel('x') #添加坐标轴
plt.ylabel('y')
plt.xlim((0,1))#设置x轴的取值范围--->元组 limit 范围
plt.ylim((0,1))
plt.xticks([0.2,0.4,0.6,0.8,1])#添加刻度
plt.xticks([0.2,0.4,0.6,0.8,1])
plt.plot(data,data**2)#画线
plt.plot(data,data**4)
plt.legend(['y=x^2','y=x^4'])#添加图例
plt.savefig('M:/Pythonxiangmu/d.png')#保存
plt.show()#显示

2.绘制正炫余炫图形

pl = plt.figure(figsize=(10,10),dpi=100) #创建一个图,通过该函数确定画布大小,10-10是表示尺寸大小 dpi是表示分辨率
rad = np.arange(0,np.pi*2,0.01)
ax2 = pl.add_subplot(2,1,1)#创建一个子图 创建一个两行一列的子图,在第一行上画图
plt.title('sin-cos')
plt.xlabel('sinx')
plt.ylabel('cosy')
plt.axis([0,np.pi*2,-1,1])
plt.xticks([0,np.pi/2,np.pi*3/2,np.pi*2])
plt.yticks([-1,-0.5,0,0.5,1])
plt.plot(rad,np.sin(rad))
plt.plot(rad,np.cos(rad))
plt.savefig('M:/Pythonxiangmu/sins_cos.png')
plt.show()

3.正炫余炫图形绘制改变线条

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,np.pi*2) #生成x,y轴的数据
y = np.sin(x)
#修改线条的样式和粗细
plt.rcParams['lines.linestyle']='-.'
plt.rcParams['lines.linewidth']=5
plt.plot(x,y) #画图
plt.savefig('M:/Pythonxiangmu/sin+cosc.png')
plt.show()

4.绘制散点图

import numpy as np
import matplotlib.pyplot as plt
date = np.load('M:/国民经济核算季度数据.npz',allow_pickle=True)
#69行15列
values=date['values']
#只需要第一季度和国内生产总值
#pl = np.figure(figsize=(10,10),dpi=800)
plt.xlabel('年份')
plt.ylabel('生产总值(亿元)')
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False
plt.xticks(range(0,69,4),values[range(0,69,4),1],rotation=45)# 添加刻度 --->1.添加刻度2.添加刻度的值,3.将值旋转45度
#画图 x的值 y的值 marker是线条
plt.scatter(values[:,1],values[:,2],marker='*')
plt.savefig('M:/Pythonxiangmu/sin01cos.png')
plt.show()

5.绘制折线图

#需求:2000-2017年季度生产总值折线图

import numpy as np
import matplotlib.pyplot as plt

#解决中文乱码
plt.rcParams['font.sans-serif'] = 'SimHei' ## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False

data = np.load('M:/国民经济核算季度数据.npz',allow_pickle=True)
print(data['columns']);
values = data['values'];
#print(values[0:5,0:3])
#print(values[range(0,70,4),1])

#画折线图
plt.figure(figsize=(8,7))## 设置画布
plt.plot(values[:,1],values[:,2],color='green', marker='v',ms=5)
plt.xlabel('年份')## 添加横轴标签
plt.ylabel('生产总值(亿元)')## 添加y轴名称
plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
plt.title('2000-2017年季度生产总值折线图')## 添加图表标题
plt.savefig('M:/Pythonxiangmu/csf.png')
plt.show()

6.绘制柱状图

#绘制直方图 以第一 第二 第三 产业为很轴 生产总值为中轴 3 4 5
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(10,5),dpi=30)
data = np.load('M:/国民经济核算季度数据.npz',allow_pickle=True) #加载出来的是两个数组
columns=data['columns'] #columns 是一个数组
values=data['values'] #values 是一个数组
plt.xlabel('三大产业')
plt.ylabel('生产总值(亿元)')
label = ['第一产业','第二产业','第三产业']
plt.xticks(range(3),label)#添加x轴的刻度,并且为每个刻度添加标签
plt.bar(range(3),values[-1,3:6],width = 0.4,color='r')
plt.title('2017年第一季度各产业国民生产总值直方图')## 添加图表标题
plt.savefig('M:/Python数据分析笔记/image/l11.png')
plt.show()

7.绘制箱线图

#箱线图参数解析
df = pd.DataFrame(np.random.rand(10,5),columns=['A','B','C','D','E'])
f = df.boxplot(gdp =list(是个元组/列表) #该参数可以是一个列表,也可以是一个包含多个列表的元组
sym = 'o', #异常点形状
vert = True, # 是否垂直
whis=1.5, # IQR
patch_artist = True, # 上下四分位框是否填充
meanline = False,showmeans = True, # 是否有均值线及其形状
showbox = True, # 是否显示箱线
showfliers = True, #是否显示异常值
notch = False, # 中间箱体是否缺口
return_type='dict') # 返回类型为字典
plt.title('箱线图',fontproperties=myfont)
plt.show()

四份位解析:

1)确定四分位数的位置。Qi所在位置=i(n+1)/4,其中i=1,2,3。n表示序列中包含的项数。

(2)根据位置,计算相应的四分位数。

例中:

Q1所在的位置=(14+1)/4=3.75,

Q1=0.25×第三项+0.75×第四项=0.25×17+0.75×19=18.5;

.........

#绘制 箱线图 boxplot() 2000-2017三大产业国民生产总值箱线图

import numpy as np
import matplotlib.pyplot as plt
plt.figure(figsize=(12,5),dpi=50)
plt.rcParams['font.sans-serif'] = 'SimHei'## 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
data = np.load('M:/国民经济核算季度数据.npz',allow_pickle=True) #加载出来的是两个数组
columns=data['columns'] #columns 是一个数组
values=data['values'] #values 是一个数组
plt.xlabel('x')
plt.ylabel('y')
#gdp=values[:,3]#箱线图的数值
gdp = (list(values[:,3]),list(values[:,4]),list(values[:,5]))#gdp是一个元组---其中是多个列表的值
label=['第一产业','第二产业','第三产业']
plt.boxplot(gdp,labels=label)#每个箱线图的刻度标签 label
plt.savefig('M:/Python数据分析笔记/image/xs.png')
plt.show()

猜你喜欢

转载自www.cnblogs.com/8b8b/p/12907638.html