#!/usr/bin/env python
# coding: utf-8
# # 一、matplotlib.pyp绘图相关的对象:
# 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 import Axes3D
# 7、动态交互图:pyecharts
# In[4]:
#检测环境
# In[5]:
pip show matplotlib
# In[6]:
#导入第三方库
import matplotlib.pyplot as plt #导入数据可视化库matplotlib中的pyplot绘图模块,别名为plt
import numpy as np #导入科学计算库,别名为np
# In[24]:
#1、线形图:plot()
plt.plot([-4,-3,-2,-1,0],[1,5,-8,6,4])
#方法里面的点需要用列表或数组描述(用[]),如果只有一组数据表示y坐标值,如果有两组分别表示为x和y值
plt.plot([21,8,3,7])
plt.xlabel('数据分析') #x轴坐标标签,坐标系默认为英文,如果需要显示中文另加说明
plt.ylabel('grade')
plt.axis([-10,10,-10,10]) #修改坐标轴取值范围,前面两位为x轴,后面两位为y轴,放在数组[]里面
plt.savefig('../R&Q_pic/test_0.png',dpi = 600)
# In[60]:
#plt.plot([0,2,4,2,0],[0,2,2,0,0])
plt.plot([10],[10])
plt.plot([10])
plt.plot([3,1,1,2,3,4,5,6,7,8,8,6,3],[1,3,5,7,10,7,7,10,7,5,3,1,1])
# In[63]:
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family'] = 'kaiti'
x = np.arange(0,4,0.02) #生成x轴序列
y_1 = np.sin(np.pi*x)+2 #生成y轴序列
y_2 = np.cos(np.pi*x)
plt.plot(x,y_1,'mx')
plt.plot(x,y_2,'r')
plt.legend(['正弦曲线','余弦曲线']) #图例
plt.title('正弦曲线图') #图表标题
plt.savefig('../R&Q_pic/test3.png',dpi=600)
plt.show() #显示图表
# In[64]:
x = np.arange(0,4,0.02)
# In[65]:
np.pi
# In[66]:
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)
# In[68]:
#综合示例:
import matplotlib.pyplot as plt
plt.figure(num = '气温趋势',figsize=(6,4)) #绘制区域大小
plt.rcParams['font.family']='Kaiti' #设置字体
x = ['周一','周二','周三','周四','周五','周六','周日']
y_1 = [20,15,18,16,21,14,10] #一周最高气温
y_2 = [12,8,14,10,13,9,4] #一周最低气温
plt.title("一周气温变化趋势") #图片标题
plt.xlabel("星期") #x轴标题
plt.ylabel("气温") #y轴标题
plt.plot(x,y_1,"rs--",label="最高气温") #绘制最高气温
plt.plot(x,y_2,"bo:",label="最低气温") #绘制最低气温
plt.legend() #显示图例
plt.savefig('../R&Q_pic/test5',dpi=600) #保存图片
plt.show() #显示图片
# In[76]:
#2、直方图:hist()
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.family'] = 'STSong'
datas_1 = 10 + np.random.randn(1000) #随机生成1000个数
datas_2 = 12 + np.random.randn(1000) #随机生成1000个数
plt.hist(datas_1,bins=30)
plt.hist(datas_2,bins=30,alpha=0.4)
plt.legend(["以10为中心的正态分布","以12为中心的正态分布"])
plt.title("直方图")
plt.xlabel("区间")
plt.ylabel("频数")
plt.savefig('../R&Q_pic/test51',dpi=600)
plt.show
# In[71]:
np.random.rand(100) #0-1范围内的随机数
# In[73]:
np.random.randint(10,20,20)
# In[74]:
np.random.randn(4,5)
# In[87]:
#条形图
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, height=baokao_nums, width=0.4)
plt.bar([i + 0.4 for i in x], luqu_nums, width=0.4)
plt.xticks([i + 0.2 for i in x], years)
plt.legend(["研究生报考人数","研究生录取人数"])
plt.ylabel("人数/万人")
plt.xlabel("年份")
plt.title("研究生历年报考和录取情况")
plt.savefig("../R&Q_pic/test7",dpi=600)
plt.show()
# In[ ]: