matplotlib

1.matplotlib

1.jupyter和conda的使用:

安装非常简单,只需要在终端输入:
pip install jupyter
打开jupyter notebook 也只需要在终端输入:
jupyter notebook

2.plot()函数:

仿照matlab构建,主要用于数据可视化图表,是Python底层绘图库

import matplotlib.pyplot as plt
x=range(2,26,2)
    #数据在x轴的位置,是一个可迭代对象
y=[15,13,14.5,17,20,25,26,24,22,18,15,13]
    #数据在y轴的位置,是一个可迭代对象
    #x和y轴的数据一起组成了所有要绘制出的坐标
    #分别是(2,15),(4,13)....
plt.plot(x,y)#传入x和y,通过plot绘制出折线图
plt.show()#展示图形

在这里插入图片描述

  1. 设置图片大小(想要一个高清无码大图)
import matplotlib.pyplot as plt
#设置图片大小
fig=plt.figure(figsize=(10,4))
    #20为宽,8为高,单位为英寸
    #figure图形图标的意思,在这里指的就是我们画的图
    #在图像模糊的时候可以传入dpi参数,让图片更加清晰
    #dpi指的是每英寸上点的个数
x=range(2,26,2)
y=[15,13,14.5,17,20,25,26,26,24,22,18,15]
#绘图
plt.plot(x,y)
#保存(绘图之后保存)
plt.savefig("./sig.png")#保存图片
#可以保存为svg这种矢量图格式,放大不会有锯齿
#展示
plt.show()

在这里插入图片描述

  1. 保存到本地

  2. 描述信息,比如x轴和y轴表示什么,这个图表示什么

  3. 调整x和y的刻度的间距

import matplotlib.pyplot as plt
#设置图片大小
fig=plt.figure(figsize=(10,4))
   #20为宽,8为高,单位为英寸
   #figure图形图标的意思,在这里指的就是我们画的图
   #在图像模糊的时候可以传入dpi参数,让图片更加清晰
   #dpi指的是每英寸上点的个数
x=range(2,26,2)
y=[15,13,14.5,17,20,25,26,26,24,22,18,15]
#绘图
plt.plot(x,y)
#设置x轴的刻度
plt.xticks(x)#传入的每个x的值
#保存(绘图之后保存)
#plt.savefig("./sig.png")#保存图片
#可以保存为svg这种矢量图格式,放大不会有锯齿
#展示
plt.show()

在这里插入图片描述
把plt.xticks(x)改成plt.xtricks(range(2,25))
在这里插入图片描述

_xtick_labels=[i/2 for i in range(4,49)]
plt.xticks(_xtick_labels)

在这里插入图片描述

_xtick_labels=[i/2 for i in range(4,49)]
plt.xticks(_xtick_labels[::3])

在这里插入图片描述

_xtick_labels=[i/2 for i in range(4,49)]
plt.xticks(range(25,50))

在这里插入图片描述

_xtick_labels=[i/2 for i in range(4,49)]
plt.xticks(range(25,50))
plt.yticks(range(min(y),max(y)+1))

在这里插入图片描述
例子:表示10点到12点每一分钟气温的变化的折线图

import matplotlib.pyplot as plt
import random
x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
plt.plot(x,y)
plt.show()

气温变化折形图:
在这里插入图片描述

plt.figure(figsize=(20,8),dpi=80)

在这里插入图片描述
调整x轴的刻度:

x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
#调整x轴的刻度
_xtick_lables=["10点{}分".format(i) for i in range(60)]
_xtick_lables +=["11点{}分".format(i) for i in range(60)]
plt.xticks(list(x)[::3],_xtick_lables[::3],ratation=90)#rotation旋转的度数
plt.show()
这个在运行的时候报错了
设置中文格式:
import matplotlib.pyplot as plt
import random
import matplotlib
from matplotlib import font_manager
"""
windows和linux设置字体的方式
font={
    'family':'MicroSoft YaHei',
    'weight':'bold',
    'size':'larger'
}
matplotlib.rc("font",**font)
matplotlib.rc("font",family='MicroSoft YaHei',weight="bold")
matplotlib.rc"""
my_font=font_manager.
x=range(0,120)
y=[random.randint(20,35) for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
#调整x轴的刻度
_xtick_lables=["10点{}分".format(i) for i in range(60)]
_xtick_lables +=["11点{}分".format(i) for i in range(60)]
plt.xticks(list(x)[::3],_xtick_lables[::3],ratation=90)#rotation旋转的度数
plt.show()
  1. 线条的样式(比如颜色、透明度等)
  2. 标记出特殊的点(比如最低点、最高点)
  3. 给图片添加一个水印(防伪,防止盗用)

折形图:

import matplotlib.pyplot as plt
y=[1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1]
x=range(11,30)
#设置图形大小
plt.figure(figsize=(20,8),dpi=80)
plt.plot(x,y)
#设置x轴刻度
_xtick_labels=["{}岁".format(i) for i in x]
plt.xticks(x,_xtick_labels)
#绘制网格
plt.grid()
#展示
plt.show()

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

散点图:

在这里插入图片描述

条形图:

绘制离散的数据,数据本身之间没有关系,eg:影片的票房

#coding=utf-8
import matplotlib.pyplot as plt
from matplotlib import font_manager
a=["战狼二","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5"]
b=[56.01,26.94,17.53,87.9,65.9]
plt.bar(range(len(a)),b)
plt.show()

在这里插入图片描述

#coding=utf-8
import matplotlib.pyplot as plt
from matplotlib import font_manager

a=["战狼二","速度与激情8","功夫瑜伽","西游伏妖篇","变形金刚5"]
b=[56.01,26.94,17.53,87.9,65.9]
plt.bar(range(len(a)),b)
plt.show()

在这里插入图片描述

直方图:

没有经过任何统计的数据可以画直方图
在这里插入图片描述

numpy学习:

处理数值型数据,Python科学计算库的基础库,多用在大型多维数组上执行数值运算
1.数组的创建:

#coding=utf-8
import numpy as np
t1=np.array([1,2,3])
print(t1)#[1 2 3]
print(type(t1))#<class 'numpy.ndarray'>
t2=np.arange(10)
print(t2)#[0 1 2 3 4 5 6 7 8 9]

在这里插入图片描述

#coding=utf-8
import numpy as np
t1=np.array([1,2,3])
print(t1)#[1 2 3]
print(type(t1))#<class 'numpy.ndarray'>
t2=np.arange(10)
print(t2)#[0 1 2 3 4 5 6 7 8 9]
print(t2.dtype)#int32

#numpy中的数据类型
t4=np.array(range(1,4),dtype='float32')
print(t4)#[1. 2. 3.]
print(t4.dtype)#float32

#numpy中的Bool类型
t5=np.array([1,1,0,1,0,0],dtype=bool)
print(t5)#[ True  True False  True False False]
print(t5.dtype)#bool

#调整数据类型
t6=t5.astype('int8')
print(t6)#[1 1 0 1 0 0]
print(t6.dtype)#int8

2.数组的拼接:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#coding=utf-8
import numpy as np
t1=np.arange(12).reshape((3,4)).astype("float")
t1[1,2:]=np.nan
for j in range(t1.shape):
    temp_col=t1[:,j]#当前的一列
    nan_num=np.count_nonzero(temp_col!=temp_col)
    if nan_num!=0:
        temp_not_nan_col=temp_col[temp_col==temp_col]#当前这一列不为nan的array
        temp_not_nan_col.mean()
        temp_col[np.isnan(temp_col)]=temp_not_nan_col.mean()

pandas:

pandas除了处理数值之外(基于numpy),还能够帮助我们处理其他类型的数据

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值