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



