栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

matplotlib基本画图功能

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

matplotlib基本画图功能

一些lkx什么都不会的证据

Date 0712记录

官方文档

https://matplotlib.org/stable/plot_types/index


设置图形风格
颜色字符风格字符
r红色-实线
g绿色--虚线
b蓝色-.点划线
w白色:点虚线
c青色' ' 留空
m洋红
y黄色
k黑色

 还是默认的颜色比较好看...


显示图例

loc='.....'    里面的位置就是字面意思

  • 'best'   0
  • 'upper right'   1
  • 'upper left'   2
  • 'lower left'   3
  • 'lower right'  4

 
折线图

一个绘图区(面向过程)
import random

import matplotlib.pyplot as plt


plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False  ## 设置正常显示符号

#一个绘图区(面向过程)
# 仅仅上面的图像相对不完备,通过添加辅助显示层来完善图像
x = range(60)
y_shenzhen = [random.uniform(15, 18) for i in x]  # 在15,18范围内均匀的生成随机数
# 同个图上面设置另一条线
y_beijing = [random.uniform(1, 3) for j in x]
# 设置画布
plt.figure(figsize=(20, 8), dpi=100)
# 先画图再修改刻度,否则刻度仍为自动生成
plt.plot(x, y_shenzhen,linestyle='--',label='上海')
plt.plot(x, y_beijing,linestyle='-.',label='北京')
# 显示图例:前面的label
plt.legend(loc="best")
# 修改x,y的刻度
# 修改x的刻度说明
x_label = ['11点{}分'.format(i) for i in x]
plt.xticks(x[::5], x_label[::5])  # 步长为5,一一对应,x_label和x一一对应
plt.yticks(range(0, 40)[::5])  # 0到40范围内每隔5设置1刻度
# 添加网格显示,True显示网格,linestyle线条风格,alpha透明度
plt.grid(True, linestyle='--', alpha=0.5)  # alpha网格透明度
# 添加坐标轴
plt.xlabel('时间变化')
plt.ylabel('温度变化')
plt.title('北京、深圳11点至12点每分钟温度变化状况')
plt.show()

random.uniform(---range---)

随机均匀生成数字


#创建多个绘图区(面向对象)
figure,axes=plt.subplots(nrows=1,ncols=2)#一行两列
axes[i].方法名字  调用方法
axes[0]第一个区域
axes[1]第二个区域

转变面向过程为对象:
plt.函数名()plt.xticks()
axes.set_方法名()plt.set_xticks()

多个绘图区(面向对象)

import random

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False  ## 设置正常显示符号

x = range(0,60)
y_shenzhen = [random.uniform(15, 18) for i in x]  # 在15,18范围内均匀的生成随机数
y_beijing = [random.uniform(1, 3) for j in x]
# 设置画布,创建多个绘图区,返回figure 绘图区axes
figure,axes=plt.subplots(nrows=1,ncols=2,figsize=(25,8),dpi=100)
# 先画图再修改刻度,否则刻度仍为自动生成
axes[0].plot(x, y_shenzhen,linestyle='--',label='上海')
axes[1].plot(x, y_beijing,linestyle='-.',color='m',label='北京')
# 显示图例:前面的label
axes[0].legend()
axes[1].legend()

# 修改x,y的刻度
# 修改x的刻度说明
x_label = ['11点{}分'.format(i) for i in x]
#set_xticks只能传一个参数
axes[0].set_xticks(x[::5])
axes[0].set_yticks(range(0, 30)[::5])  # 0到40范围内每隔5设置1刻度
axes[1].set_xticks(x[::10])
axes[1].set_xticklabels(x_label[::10])  # 步长为5,一一对应,x_label和x一一对应
axes[1].set_yticks(range(0, 25)[::5])
# 添加网格显示,True显示网格,linestyle线条风格,alpha透明度
axes[0].grid(True, linestyle='--', alpha=0.5)  # alpha网格透明度
axes[1].grid(True, linestyle='--', alpha=0.5)  # alpha网格透明度
# 添加坐标轴
axes[0].set_xlabel('时间变化')
axes[0].set_ylabel('温度变化')
axes[0].set_title('深圳11点至12点每分钟温度变化状况')
axes[1].set_xlabel('时间变化')
axes[1].set_ylabel('温度变化')
axes[1].set_title('北京11点至12点每分钟温度变化状况')
plt.show()
散点图

scatter


柱状图
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False  ## 设置正常显示符号
# 准备数据
x = range(3)
first_day = [12313, 14345, 15523]
first_weekend = [32342, 35535, 32222]
movie_name = ['你爹来咯', '你妈来咯', '你来咯']
# 画图
plt.figure(figsize=(20, 8), dpi=80)
plt.bar(x, first_day, width=0.25, label='首日票房')
plt.bar([i + 0.25 for i in x], first_weekend, width=0.25, label='首周票房')
plt.legend()
# 修改刻度
plt.xticks([i + 0.125 for i in x], movie_name)
plt.show()

直方图

两个重要元素:组数 组距

组数 bins=(max(数据)-min(数据))//组距

直方图和柱状图的区别:

  • 直方图是连在一起的,展示数据分布,长度是比例,宽度是组距
  • 柱状图表示的是数据的比较
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False  ## 设置正常显示符号

time=[131,98,125,131,124,139,131,117,128,125,131,124,139,131,117,128,108,135,131,102,107,114,119,113,115,116,117,130,126,129,103,103,103,105,]
plt.figure(figsize=(20,8),dpi=100)

#组数 bins=(max(time)-min(time))//组距
#设置组距和组数
dis=2
groupnum=(max(time)-min(time))//dis
print(groupnum)
plt.hist(time,bins=groupnum,density=True)
#bis为组数,density为是否显示频率(默认None)
#修改x轴刻度
plt.xticks(range(min(time),max(time),dis))
plt.grid(linestyle='--',alpha=0.5)
plt.show()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011198.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号