认识jupyter notebook 和 Matplotlib的基本用法

1、认识jupyter notebook

jupyter notebook:一款编程/文档/笔记/展示软件,具有很好的交互性,大量减少了调式的时间,这里暂不介绍 jupyter lab 。

启动命令:jupyter notebook

在这里插入图片描述

具体安装网上有教程 这里不细说

想在MAC终端启动并在后台挂起请输入

nohup jupyter notebook&

jobs :查看当前有多少在后台运行的命令

使用 jobs -l 可以显示进程号 , kill -9 pid 可以终止运行的命令。

2、认识Matplotlib

matplotlib: 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建

在jupyter notebook上运行matplotlib ,请输出下面语句以顺利解决中文乱码

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']      # windos 下解决中文乱码的方法
plt.rcParams['font.sans-serif']=['Hiragino Sans GB'] # MAC 下解决中文乱码的方法
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号  通用

3、安装环境

pip3 install matplotlib 

如果上面的方法太慢,建议使用下面方法

选用的是国内源

pip3 install -i https://pypi.doubanio.com/simple/ matplotlib

3.1 折线图

plt.figure() # 用来设置图片,如参数figsize 设置图片大小,dpi 设置图片分辨率

plt.style.use() # 画布风格,可以采用seaborn 的 风格

例如:plt.style.use(‘seaborn-whitegrid’) 主题为白的网格画布

plt.plot() # 添加x,y参数 label:图例名称 ,color:颜色,ls:线条类型 ,lw:线条宽度

plt.legend() #添加图例 ,添加loc参数可以改变图例位置

plt.ylabel()、 plt.xlabel()、 plt.title()分别是y轴标签,x轴标签和标题

plt.show() # 展示

在开始之前,环境如下:每个demo 之前

import numpy as np  
import matplotlib.pyplot as plt
import pandas as pd   
import random
plt.rcParams['font.sans-serif']=['Hiragino Sans GB'] # 由于我的是mac 所以采用mac 中文乱码解决方法
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

下面是折线图的demo

x = range(120)
y = [random.uniform(20,35) for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
_x_xticks = ['10点{}分'.format(i) for i in range(60)]
_x_xticks += ['11点{}分'.format(i) for i in range(60)]
plt.xticks(list(x)[::10],_x_xticks[::10],rotation=45)   # xaix [::10] 列表取步长,为了X轴显示不那么紧密
plt.xlabel('时间')
plt.ylabel('温度')
plt.title('温度随时间变化图')
plt.plot(x,y,label='曲线',color='red',ls='-.',lw=2.4)
plt.legend(loc='best')
plt.show()

在这里插入图片描述

3.2 散点图 —demo

a = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
b = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]

a_x = range(1,32)
b_x = range(51,82)
# 设置画布大小
plt.figure(figsize=(20,8),dpi=80)
# 横坐标
_x = list(a_x)+list(b_x)
_x_xticks = ['3月{}日'.format(i) for i in a_x]
_x_xticks += ['11月{}日'.format(i-50) for i in b_x]
plt.xticks(_x[::5],_x_xticks[::5],rotation=45)
# 画图
plt.scatter(a_x,a,label='3月')
plt.scatter(b_x,b,label='11月')
# 添加图例
plt.legend()
# 展示
plt.show()

在这里插入图片描述

3.3 条形图—demo

a = ["战狼2","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5\n:最后的骑士","摔跤吧!爸爸","加勒比海盗5\n:死无对证","金刚:骷髅岛","极限特工\n:终极回归","生化危机6:终章","乘风破浪","神偷奶爸3","智取威虎山","大闹天竺","金刚狼3\n:殊死一战","蜘蛛侠\n:英雄归来","悟空传","银河护卫队2","情圣","新木乃伊",]

b=[56.01,26.94,17.53,16.49,15.45,12.96,11.8,11.61,11.28,11.12,10.49,10.3,8.75,7.55,7.32,6.99,6.88,6.86,6.58,6.23] 

# 设置画布大小
plt.figure(figsize=(20,8),dpi=80)
# 横坐标设置
_x = range(len(a))
plt.xticks(_x,a,rotation=90)
# 画图
plt.bar(_x,b,label='票房数据',width=0.3,color='orange')
# 添加图例
plt.legend()
plt.ylabel('单位:亿')
plt.title("内地票房top20")
plt.xlabel('电影名称')
# 保存图片
plt.savefig('/Users/apple/Desktop/个人学习/img/demo_3.png')
# 展示
plt.show()

在这里插入图片描述

3.4 进阶条形图 —demo

a = ["猩球崛起3:终极之战","敦刻尔克","蜘蛛侠:英雄归来","战狼2"]
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]

# 设置画布大小
plt.figure(figsize=(20,8),dpi=80)
# 设置横坐标
_bar_width = 0.2
_x = range(len(a))
_x_xticks = [i + _bar_width for i in _x]
plt.xticks(_x_xticks,a)
# 画图
plt.bar(_x,b_14,width=_bar_width,label='9月14日')
plt.bar([i+_bar_width for i in _x],b_15,width=_bar_width,label='9月15日')
plt.bar([i+_bar_width*2 for i in _x],b_16,width=_bar_width,label='9月16日')

# 添加图例
plt.legend()
# 添加标题
plt.ylabel('票房(单位:万元)')
plt.title('9月14、15、16三天票房')
plt.xlabel('电影名')
# 添加网格
# plt.grid(alpha=0.4)
# 保存图片
plt.savefig('/Users/apple/Desktop/个人学习/img/demo_4.png')
# 展示
plt.show()

在这里插入图片描述

总结 :若上诉的图片无法展示且报错,请在jupyter notebook 中添加一行

%matplotlib inline   

原理如下:Matplotlib嵌入Jupyter之后,这种Matplotlib生成的图像就处于一种非交互的模式,而%matplotlib inline命令就是激活Matplotlib,为Ipython和Jupyter提供“内嵌后端”支持,也就是作为一个静态图像嵌入Jupyer中,因此Matplotlib就不需要使用plt.show()来主动调用图像展示窗口

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一城山水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值