赞
踩
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(字典)型数据(参数)
arrowstyle
- 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]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。