暑期实训Python第九,第十天--------matplotlib画图 + seaborn 画图

画图需要引入的包

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

画图需要设置中文的字体:

 mpl.rcParams["font.family"] = "SimHei"#用来正常显示中文标签
 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

画图的步骤:

步骤以画出sin 和 cos 为例子:

1.准备数据

NumPy 包含大量的各种数学运算的函数,包括三角函数,算术运算的函数,复数处理函数等

x = np.arange(0, 14, 0.001)#生成的数是0到14,步长为0.001
y1 = np.sin(x)
y2 = np.cos(x)

2、绘制数据的图形

参数:
color:设置线条的颜色
linewidth : 设置线条的宽度
linestyle :设置线条的风格

plt.plot(x, y1, color='red', linewidth=0.5, linestyle="-", label=r'$y=sin{x}$')
plt.plot(x, y2, color='black', linestyle="--")

在这里插入图片描述
3、设置图形,轴,标题

设置 x 的标题
plt.xlabel("the input of x")

设置  y 的标题,使用的是$$包起来
plt.ylabel("$y=f(x)$")

设置 x ,y 轴的范围
plt.xlim(1, 12)
plt.ylim(-2, 2)

设置x,y的刻度,传入两个列表
plt.xticks(range(2,7),["one","two","three","four","five"])
plt.yticks(np.arange(-2,3,1),['-a','-b','c','b','a'])

设置整个图的标题,\使字符变成斜体
plt.title("$\ function \ sin ,\ cos$")

添加 图例,loc:指定左上角显示
plt.legend(["sin(x)","cos(x)"],loc = "upper left")

添加文字和注释  指的是一个点的注释
plt.text(10,1.5,"cos图的实例",fontsize = 13)

添加注释
 plt.annotate("x=6",xy=(6,np.sin(6.2)),xytext=(6,-1.5)
              ,arrowprops=dict(arrowstyle='>',connectionstyle='arc3,rad=0.1',color='blue'))

坐标系:

import matplotlib.pyplot as plt 


ax = plt.subplot(221)
返回2*2坐标系,当前是第一个
ax.plot()

4、显示或保存图片

画图保存图片空白
原因是因为保存图片的时候将plt.savefig(’./test.jpg’)放到了plt.show()之后

先保存 再show,顺序反了就会为空白图

plt.savefig("./sin.png")
plt.show()

在这里插入图片描述
在这里插入图片描述

maplotlib 绘制柱状图、条形图

补充知识
产生随机数,范围是1-100,产生1000个,随机数不存在步长的概念,那是arange的参数

np.random.randint(1, 100, 1000)

条形图:条形图用长条形表示每一个类别,长条形的长度表示类别的频数,宽度表示表示类别。

x = np.random.randint(1,10,10)
y = np.random.randint(1,10,10)
plt.bar(x,y) #条形图

在这里插入图片描述

x = np.random.randint(1,10,10)
y = np.random.randint(1,10,10)
plt.barh(y=x,width=y) #水平的条形图

在这里插入图片描述
直方图
直方图是一种统计报告图,形式上也是一个个的长条形,但是直方图用长条形的面积表示频数,所以长条形的高度表示,宽度表示组距,其长度和宽度均有意义。当宽度相同时,一般就用长条形长度表示频数。

y = np.random.randint(1,10,10)
plt.hist(y,bins=10)
plt.show()

在这里插入图片描述

单个连续型变量

在这里插入图片描述

峰群图

在这里插入图片描述

箱线图

在这里插入图片描述

点线图

在这里插入图片描述

正态分布曲线

在这里插入图片描述

seaborn : SNS

是一个统计图制作库,基于matplotlib ,数据结构和 pandas 统一

sns.barplot(x="day", y="total_bill", data=tips)
plt.show()

在这里插入图片描述

import seaborn as sns
月份 和 租赁 关系
sns.boxplot(x="mnth",y="cnt",data=bikes)

在这里插入图片描述

分析 各个季节 租赁分布情况
sns.violinplot(x="season",y="cnt",data=bikes)

在这里插入图片描述

sns.swarmplot(x="season",y="cnt",data=bikes)

在这里插入图片描述

聚合总数
sns.pointplot(x="season",y="cnt",data=bikes,estimator=np.sum)
plt.show()

在这里插入图片描述

对比 各个因素 查看哪个因素影响 最大

subplot分成几个子图

plt.subplot(3,1,1)
sns.scatterplot(x="atemp",y="casual",data=bikes)
plt.subplot(3,1,2)
sns.scatterplot(x="hum",y="casual",data=bikes)
plt.subplot(3,1,3)
sns.scatterplot(x="windspeed",y="casual",data=bikes)

plt.show()

在这里插入图片描述

plt.subplot(2,2,1)
sns.boxplot(y="casual",x="season",data=bikes)
plt.subplot(2,2,2)
sns.boxplot(y="casual",x="mnth",data=bikes)
plt.subplot(2,2,3)
sns.boxplot(y="casual",x="holiday",data=bikes)
plt.subplot(2,2,4)
sns.boxplot(y="casual",x="weekday",data=bikes)

在这里插入图片描述

密度,kde

sns.jointplot(x="atemp",y="cnt",data=bikes,kind="kde")
plt.show()

在这里插入图片描述

拟合: 预测数据

直线拟合

sns.lmplot(x="atemp",y="cnt",data=bikes)
plt.show()

在这里插入图片描述

二阶拟合

Order =

sns.regplot(x="atemp",y="cnt",data=bikes,order=2)
plt.show()

在这里插入图片描述

拟合是两个数据之间的关系,当多个数据关系就要使用

热力图

heatmap

在这里插入图片描述

两两组合

pairolot :一次性画很多子图出来

sns.pairplot(data=bikes[["atemp","hum","windspeed","cnt"]],x_vars=["atemp","hum","windspeed"],y_vars=["cnt"])
plt.show()

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

你在狗叫什么、

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

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

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

打赏作者

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

抵扣说明:

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

余额充值