Matplotlib--python

Matplotlib–python

在这里插入图片描述

折线图

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()

在这里插入图片描述
在这里插入图片描述
结果为:
在这里插入图片描述

把北京和上海11点到12 点的折线图画在俩个画布上

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()

在这里插入图片描述

matplotlib可以画不同的图

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()

结果为:
在这里插入图片描述

直方图

  直方图一般用来描述等距数据或等比数据;柱形图一般用来描述称名数据或顺序数据。. 
  直观上,直方图矩形之间是衔接在一起的,表示数据间的数学关系;柱形图则留有空隙
  ,表示仅作为两个或多个不同的类,而不具有数学相关性质。

在这里插入图片描述
x为数据
bins为组数

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()

结果为:
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值