import matplotlib.pyplot as plt #导入模块
plt.figure()#绘制画布
plt.plot([1,2,3,4,5],[1,2,3,4,5])#绘制图像
plt.show()#显示图像
import matplotlib.pyplot as plt
plt.figure(figsize=(20,10),dpi=80)#绘制画布
plt.plot([0,1,2,3,4,5],[0,1,2,3,4,9])#绘制图像
plt.show()#显示图像
figsize(长度,宽度) 设置画布大小
dpi=80 设置清晰度
plt.savefig('new1matplotlib.png')#保存图片
注意只能在plt.show()之前写plt.savefig(地址),如果写在后面,则保存一个空白图片
#收集北京11点到12点的温度,温度范围在1到3度
import random
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] #写此行代码可以解决不显示中文的情况
#需求画出俩个城市11点到12点每分钟的温度变化,温度范围在15到18度
#1、准备数据 x y
x=range(60)
y_beijing=[random.uniform(1,3) for i in x] #random.uniform 是均匀分布
y_shanghai=[random.uniform(15,18) for i in x] #random.uniform 是均匀分布
#2、设置画布
plt.figure(figsize=(30,15),dpi=80)
#3、画出图像
plt.plot(x,y_shanghai,color="red",linewidth=11,linestyle="-.",label="上海")
plt.plot(x,y_beijing,color="b",linewidth=11,linestyle='-',label="北京")
#显示图例
#首先在画出图像那行代码后面填写label="北京"
#如果想要改变图例字体大小 plt.rcParams.update({"font.size":15})
#然后 plt.legend()
plt.rcParams.update({"font.size":15})
plt.legend() #默认图例在右上角,如果想改变位置 loc=" 位置,请参考表"
#3、1修改 x y 的刻度
x_kedu=["11点{}分".format(i) for i in x]
plt.xticks(x[::5],x_kedu[::5],fontsize=16)
plt.yticks(range(0,40,5))
#3、2添加网格
plt.grid(True,linestyle="--",alpha=0.5)
#第一个表示是否用表格,True为用,False为不用
#第二个为线条风格
#第三个为透明度
#3、3给横纵坐标填说明
plt.xlabel("时间",fontsize=16)
plt.ylabel("温度",fontsize=16)
plt.title("11点到12点的温度",fontsize=16)
#4、显示图像
plt.show()
import matplotlib.pyplot as plt
import random
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
#创建俩个绘图区
figure,axes=plt.subplots(nrows=2,ncols=2,figsize=(20,10),dpi=80)
#创建数据
x=range(60)
y_shanghai=[random.uniform(15,18) for i in x]
y_beijing=[random.uniform(1,3) for i in x]
#画图
axes[0][0].plot(x,y_shanghai,color='r',linewidth=2,linestyle='-.',label="上海")
axes[0][1].plot(x,y_beijing,color='y',linewidth=2,linestyle='-',label='北京')
#显示图例
axes[0][0].legend()
axes[0][1].legend()
#设置横纵量程
#注意 ------------set_ticklabels(字符串)
x_kedu=["11点{}分".format(i) for i in x]
axes[0][0].set_xticks(x[::5])
axes[0][0].set_xticklabels(x_kedu[::5])
axes[0][0].set_yticks(range(0,40,5))
axes[0][1].set_xticks(x[::5])
axes[0][1].set_xticklabels(x_kedu[::5])
axes[0][1].set_yticks(range(0,40,5))
#设置横纵坐标名称和表名
axes[0][0].set_xlabel("时间",fontsize=10)
axes[0][0].set_ylabel("温度",fontsize=10)
axes[0][0].set_title("上海",fontsize=10)
axes[0][1].set_xlabel("时间",fontsize=10)
axes[0][1].set_ylabel("温度",fontsize=10)
axes[0][1].set_title("北京",fontsize=10)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
#创建数据
x=np.linspace(-1,1,1000)
y=2*x*x
#创建画布
plt.figure(figsize=(20,10),dpi=80)
#画出图像
plt.plot(x,y,color='r',linewidth=2,linestyle='-.',label="一个图像")
#显示图例
plt.legend()
#设置横纵坐标量程
#显示横纵表示和表名
plt.xlabel("不知道",fontsize=15,color='b')
plt.ylabel("不知道",fontsize=15,color='b')
plt.title("不知道",fontsize=15,color='b')
#显示图像
plt.show()
import matplotlib.pyplot as plt
import random
#创建数据
x=[random.uniform(1,20) for i in range(20)]
y=[random.randint(1,20) for i in range(20)]
#创建画布
plt.figure(figsize=(50,20),dpi=80)
#设置量程
plt.xticks(range(0,20,3),fontsize=30)
plt.yticks(range(0,20,5),fontsize=30)
#背景为表格
plt.grid(True,linestyle="--",alpha=0.5)
#画出图像
plt.scatter(x,y,color='r',s=100) #s设置绘制图形时使用点的尺寸
#显示图像
plt.show()
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
#创建数据
x_name=["电影一","电影2","电影3","电影4","电影5","电影6","电影7","电影8","sss","电影5","电影6","电影7","电影8","sss"]
y_sum=[12012,30123,40321,10000,30291,59043,22332,11111,12121,30291,59043,22332,11111,12121]
#创建画布
plt.figure(figsize=(20,10),dpi=80)
#设置量程
plt.xticks(range(len(x_name)),x_name,color='r')
#绘制图像
plt.bar(x_name,y_sum,width=0.5,color=['r','y','b'])
#添加标识
plt.xlabel("票房")
plt.ylabel("电影名称")
plt.title("电影播放量排行")
#添加表格
plt.grid(True,linestyle="--",alpha=0.5)
#显示图像
plt.show()
#创建数据
x_name=["电影1",'电影2','电影3']
y_1=[1234,1246,9302]
y_7=[12345,34212,43212]
#创建画布
plt.figure(figsize=(20,5),dpi=80)\
#绘制图像
plt.bar(range(len(x_name)),y_1,width=0.2,color='y',label="第一天")
plt.bar([i+0.2 for i in range(3)],y_7,width=0.2,color='r',label="一个星期")
plt.legend(loc=0)
#设置刻度
plt.xticks(range(3),x_name)
#设置横纵名称
plt.xlabel("电影名称",fontsize=10,color='b')
plt.ylabel('票房',fontsize=10,color='b')
plt.title("电影第一天到一个星期的票房")
#显示图像
plt.show()
直方图一般用来描述等距数据或等比数据;柱形图一般用来描述称名数据或顺序数据。.
直观上,直方图矩形之间是衔接在一起的,表示数据间的数学关系;柱形图则留有空隙
,表示仅作为两个或多个不同的类,而不具有数学相关性质。
2 绘制
2.1、设置组距
2.2、设置组数(设置组数公式: 组数=(最大值-最小值)// 组距
import matplotlib.pyplot as plt
import random
#创建数据
date=[random.randint(0,100) for i in range(150)]
#创建画布
plt.figure(figsize=(20,5),dpi=80)
#绘制图像
zhushu=(max(date)-min(date))//2
plt.hist(date,zhushu,width=3,label="图例",color='y')
#显示图例
plt.legend()
#设置刻度
plt.xticks(range(min(date),max(date),2))
#设置标识
plt.xlabel("x的标识",color='r',fontsize=10)
plt.ylabel("y的表示")
plt.title("整个表的标识")
#显示图像
plt.show()
结果为:
添加 plt.axis(“equal”)的目的是为了是出来的图像是圆的
import matplotlib.pyplot as plt
#导入数据
x_name=['电影1','电影2','电影3','电影4','电影5']
y_sum=[12309,98212,34891,32198,98909]
#创建画布
plt.figure(figsize=(20,5),dpi=80)
#绘制图像
plt.pie(y_sum,labels=x_name,autopct='%1.2f%%',colors=['r','b','y','w','c'])#labels 相当于前面添加图例了
#显示图例
plt.legend()
#为了使得显示的图像为圆形
plt.axis("equal")
#显示图像
plt.show()