Python2D绘图库,常用于数据可视化
pip install matplotlib
引入pyplot模块
import matplotlib.pyplot as plt
使用Matplotlib模块的plot方法绘制图表
plt.plot([1, 2, 3, 4, 5], [2, 10, 6, 7, 11], 'ro')
plt.show()
运行程序
matplotlib.pyplot.plot(x, y, format_string, **kwargs)
x:x轴数据
y:y轴数据
format_string:曲线格式(颜色、线条样式、标记样式等)
**kwargs:键值参数
思路:分别产生x和y的值之后绘制图表
import matplotlib.pyplot as plt
x = range(1, 15, 1)
# 从1开始,到15,步长为1,一共14个数
y = range(1, 42, 3)
plt.plot(x, y)
plt.show()
将表格保存到PycharmProject(操作的工程)目录里
或者指定路径查找
sheet_name——表单名称/位置(可不设)
header——表头设置(可不设,默认第一行,无设为None)
index_col——索引列设置
usecols——读取部分列(序号/名称)
nrows——读取部分行
加r——防止转义
df = pd.read_excel(r"F:\练习\可视化\成绩单.xlsx",
sheet_name="Sheet1", header=0, index_col=[0], usecols="A, C:D")
df = pd.read_excel(r"./data.xlsx", usecols=lambda x:x.endswith("e")
df = pd.read_excel(r"./data.xlsx", skiprows=[1,2])
print(df)
导入pandas库-->读取数据-->绘制图表
import pandas as pd
import matlotlib.pyplot as plt
df = pd.read_excel('文档名称.xlsx')
# 测试是否读出
printf(df)
# 读取数据
x = df['日期']
y = df['温度']
plt.plot(x, y)
plt.show()
pd.set_option('display.max_rows', None)
# 显示所有行
pd.set_option('display.max_columns', None)
# 显示所有列
pd.set_option('display.expand_frame_repr', False)
# 设置不折叠数据
pd.set_option("display.max_colwidth", 200)
# 显示最大列宽
print(df.dtypes)
将缺失值自动用NaN表示
df = pd.read_excel(r"./data.xlsx", na_values='#N')
import random
# 列表生成式
x=[i for i in range(1, 11)]
# 生成随机数——1-10内生成十个随机数
y=[random.randint(1, 10)for _ in range(10)]
font——字体,sans-serif——无衬线字体(一般中文都使用无衬线字体)
SimHei——黑体
plt.rcParams['font.sans-serif'] = ['SimHei']
引入matplotlib.pyplot.plot的color参数
plt.plot(x, y, color='r')
设置值 | 说明 | 设置值 | 说明 |
---|---|---|---|
b | 蓝色 | m | 洋红色 |
g | 绿色 | y | 黄色 |
r | 红色 | k | 黑色 |
c | 蓝绿色 | w | 白色 |
#FFFF00 | 黄色(色号) | 0.5 | 灰度值字符串(0~1) |
# -号也能用实现,-.点线,--双线,可以结合用,:号虚线
# 散点图引用的是实心圆标志(可换),即’ro‘,红色的实心圆
plt.plot(x, y, 'ro')
# 可以使用参数marker设置样式
含有markerfacecolor参数(mfc),内心颜色为白色
plt.plot(x, y, marker='o', markerfacecolor='w')
此时折线图上x对应的点会有圆形标记
plt.figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
num:图像编号或名称,数字为编号字符串为名称
figsize:画布宽与高(英寸)
dpi:绘画对象分辨率,默认80,分辨率越大,画布越大
facecolor:背景颜色
edgeolor:边框颜色
framon:是否显示边框
plt.xlabel('2021五一天气情况')
plt.ylabel('温度')
# 坐标轴刻度线是否显示——此时底部刻度线不显示
plt.tick_params(bottom=False, left=True, right=True, top=True)
# 坐标轴刻度线方向——此时刻度线x在轴内,y在轴外
plt.rcParams['xtick.direction']='in'
plt.rcParams['ytick.direction']='out'
month--刻度单位为月
第三个参数为步长
plt.xticks(range(1, 11),month)
plt.yticks(range(1, 11, 5))
plt.xlim(1, 20)
plt.ylim(1, 20)
plt.grid(color='0.5', linestyle='--', linewidth='1', axis='x')
axis='x' 隐藏x轴网格线
linewidth=‘1’ 线宽度为1
# 每次都从x中取一个点,y中取一个点,从而得到坐标点
for a, b in zip(x, y):
plt.text(a, b, b, ha='center', va='bottom', fontsize=12, color='r')
# ha——垂直对齐方式, va——水平对齐方式,第三个参数为所显示的标签内容
在生成曲线时plt.plot()时,在括号内部加上参数label=‘曲线名‘
最后生成图例直接输入plt.legend()即可
plt.title('测试联系', fontsize=18)
# 参数——颜色大小等也能设置
plt.legend('测试次数')
# 默认偏左
plt.legend(('测试次数',))
# 此时偏右
plt.annotate('最大数', xy=(4, 55), xytext=(5, 55), arrowprops=dict(facecolor='r', shrink=0.05))
annotate(‘文本内容’,所指点位,出发点,箭头样式=dict(字典)型数据(参数)
plt.subplots_adjust(left=0.2, right=0.9, top=0.4, bottom=0.2)
# left、bottom的值越大,间距越大,right、top值越小,间距越大
# left不能大于right
# 解析时间列
df=pd.read_excel(r'./data.xls',
parse_dates=[0],
date_parser=lambda x:pd.to_datetime(x,format='%Y_%m_%d'))
parse_dates——需要时间解析的列位置
date_parser——选择解析器(lambda)
转换为时间格式——x:pd.to_datetime(x, format='%Y_%m_%d')
此时查看数据格式为:datetime64[ns]