matplotlib绘图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

解决中文显示

# 解决中⽂显示问题
plt.rcParams['font.sans-serif'] = [u'SimHei']
plt.rcParams['axes.unicode_minus'] = False

折线图绘制

# 等差数列
x = np.linspace(0,10,100)
y1 = np.sin(x)
y2 = np.cos(x)

plt.plot(x,y,ls=,lw=,c=,marker=,markersize=,markeredgecolor=,markerfacecolor, label=)

  • x: x轴上的数值

  • y: y轴上的数值

  • ls: 折线的风格(‘-‘, ’–‘, ’-.‘和’:‘)

  • lw: 线条宽度

  • c: 颜色

  • marker: 线条上点的形状

  • markersize: 线条上点的形状大小

  • markeredgecolor: 点的边框色

  • markerfacecolor: 点的填充色

  • label: 文本标签

  • 添加文本: 使用plt.title添加标题, 使用plt.xlabel()和ylabel()添加轴标签

  • 添加图例: 使用plt.legend()将图例说明添加到图表中

  • 添加网格: 使用plt.grid()绘制网格线

  • 保存图形: 使用plt.savefig()可以将图形保存为pdf或者其他格式

  • 绘制参考线: 使用plt.axhline和plt.axvline绘制参考线

图例legend中loc中的位置和数字关系的使用

  • ‘best’ 0
  • ‘upper rught’ 1
  • ‘upper left’ 2
  • ‘lower left’ 3
  • ‘lower right’ 4
  • ‘right’ 5
  • ‘center left’ 6
  • ‘center right’ 7
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y1,c='red',lw=2,ls='-',marker='o',markersize=6,markeredgecolor='red',markerfacecolor='yellow',label='y=sin(x)')
plt.plot(x,y2,c='c',lw=2,ls='--',marker='*',markersize=6,markeredgecolor='c',markerfacecolor='y',label='y=cos(x)')
plt.text(6,0.2,'sin(x)',weight='bold',color='red',fontsize=14)
plt.text(5,0.2,'cos(x)',weight='bold',color='c',fontsize=14)
plt.title('y=sin(x)、cos(x)')
plt.xlabel('X')
plt.ylabel('Y')
plt.legend(loc=1,fontsize=12)
plt.grid(ls='--',c='blue')
plt.show()

在这里插入图片描述

data = pd.read_csv(r'E:\python\Python数据分析与挖掘从零开始到实战\数据分析篇\学习笔记\数据\air_data.csv')
data.head()
MEMBER_NO FFP_DATE FIRST_FLIGHT_DATE GENDER FFP_TIER WORK_CITY WORK_PROVINCE WORK_COUNTRY AGE LOAD_TIME ... ADD_Point_SUM Eli_Add_Point_Sum L1Y_ELi_Add_Points Points_Sum L1Y_Points_Sum Ration_L1Y_Flight_Count Ration_P1Y_Flight_Count Ration_P1Y_BPS Ration_L1Y_BPS Point_NotFlight
0 54993 2006/11/2 2008/12/24 6 . 北京 CN 31.0 2014/3/31 ... 39992 114452 111100 619760 370211 0.509524 0.490476 0.487221 0.512777 50
1 28065 2007/2/19 2007/8/3 6 NaN 北京 CN 42.0 2014/3/31 ... 12000 53288 53288 415768 238410 0.514286 0.485714 0.489289 0.510708 33
2 55106 2007/2/1 2007/8/30 6 . 北京 CN 40.0 2014/3/31 ... 15491 55202 51711 406361 233798 0.518519 0.481481 0.481467 0.518530 26
3 21189 2008/8/22 2008/8/23 5 Los Angeles CA US 64.0 2014/3/31 ... 0 34890 34890 372204 186100 0.434783 0.565217 0.551722 0.448275 12
4 39546 2009/4/10 2009/4/15 6 贵阳 贵州 CN 48.0 2014/3/31 ... 22704 64969 64969 338813 210365 0.532895 0.467105 0.469054 0.530943 39

5 rows × 44 columns

# FFP_DATE数据转换
data['FFP_DATE'] = pd.to_datetime(data['FFP_DATE'],format='%Y/%m/%d',errors='coerce')
data.head()
MEMBER_NO FFP_DATE FIRST_FLIGHT_DATE GENDER FFP_TIER WORK_CITY WORK_PROVINCE WORK_COUNTRY AGE LOAD_TIME ... ADD_Point_SUM Eli_Add_Point_Sum L1Y_ELi_Add_Points Points_Sum L1Y_Points_Sum Ration_L1Y_Flight_Count Ration_P1Y_Flight_Count Ration_P1Y_BPS Ration_L1Y_BPS Point_NotFlight
0 54993 2006-11-02 2008/12/24 6 . 北京 CN 31.0 2014/3/31 ... 39992 114452 111100 619760 370211 0.509524 0.490476 0.487221 0.512777 50
1 28065 2007-02-19 2007/8/3 6 NaN 北京 CN 42.0 2014/3/31 ... 12000 53288 53288 415768 238410 0.514286 0.485714 0.489289 0.510708 33
2 55106 2007-02-01 2007/8/30 6 . 北京 CN 40.0 2014/3/31 ... 15491 55202 51711 406361 233798 0.518519 0.481481 0.481467 0.518530 26
3 21189 2008-08-22 2008/8/23 5 Los Angeles CA US 64.0 2014/3/31 ... 0 34890 34890 372204 186100 0.434783 0.565217 0.551722 0.448275 12
4 39546 2009-04-10 2009/4/15 6 贵阳 贵州 CN 48.0 2014/3/31 ... 22704 64969 64969 338813 210365 0.532895 0.467105 0.469054 0.530943 39

5 rows × 44 columns

每年注册人数

data1 = data.groupby(data['FFP_DATE'].dt.year)['MEMBER_NO'].count()

绘制参考线

plt.figure(figsize=(20,8),dpi=80)
plt.plot(data1.index,data1.values,label='不同年份会员注册数')
plt.legend(loc='best')
# 绘制参考线
plt.axhline(y=5000,c='r',ls='--',lw=2)
plt.axvline(x=2012,c='r',ls='--',lw=2)
# 保存图形
plt.savefig('001')
plt.show()

在这里插入图片描述

绘制参考区域

plt.figure(figsize=(20,8),dpi=80)
plt.plot(data1.index,data1.values,label='不同年份会员注册数')
plt.legend(loc='best')
# 绘制参考区域
plt.axvspan(xmin=2016,xmax=2008,facecolor='red',alpha=0.6)
plt
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值