数据分析——matplotlib1

这篇博客详细介绍了使用matplotlib库在Python中进行数据可视化的基础和进阶方法,包括设置图表标题、轴标签、图例、显示数据值,以及在同一图表上绘制多条线条。同时,还解决了中文显示和负号编码问题,提供了设置图例、显示每个数据点值的方法,并展示了如何调整字体大小和线条粗细。此外,还涵盖了设置轴刻度、显示图表和调整图例位置的技巧。
摘要由CSDN通过智能技术生成

第一个绘图程序

  • 首先导入Matplotlib包中的Pyplot模块,并以as别名的形式简化引入包的名称
from matplotlib import pyplot as plt
  • 接下来,使用Numpy提供的函数arange()创建一组数据来绘制图像
#引入numpy包
import numpy as np
#获得-50——50之间的ndarray对象
x=np.arange(-50,51)
  • 上述所得x的值作用到x轴上,而该值对应的平方值,也就是y值,使用以下方式获取
y=x**2
  • 使用plt的plot()函数对x、y进行绘制
#plot()绘制线性图表
plt.plot(x,y)

在这里插入图片描述

matplotlib基本方法

方法名说明
title()设置图表名称
xlabel()设置x轴名称
ylable()设置y轴名称
xticks(ticks,label,rotation)设置x轴的刻度,rotation旋转角度
yticks()设置y轴的刻度
show()显示图表
legend()显示图例
text(x,y,text)显示每条数据的值x,y的位置

图表名称plt.title()

import numpy as np
#x获得-50——50之间的ndarray对象
x=np.arange(-50,50)
#y轴的值是x轴的平方
y=x**2
#设置图名
plt.title("y=x^2")
#绘制图表
plt.plot(x,y)

在这里插入图片描述

如何标题写成中文呢?
#设置图名 plt.title("y等于x的平方")
在这里插入图片描述
解决方法:
修改字体配置plt.rcParams[“font.sans-serif”]
字体说明:
“SimHei” ------中文黑体
“Kaiti”------中文楷体
“LiSu”—中文隶书
“FangSong”------中文仿宋
“YouYuan”------中文幼圆
“STSong”-----华文仿宋

plt.rcParams['font.sans-serif']=["SimHei"]

在这里插入图片描述

设置之后,负号又没办法正确显示?
#解决方式:修改轴中的负号编码 plt.rcParams['axes.unicode_minus']=False
在这里插入图片描述

x轴和y轴的名称

plt.xlabel("x轴")
plt.ylabel("y轴")

在这里插入图片描述

对于上面的图,如果觉得字体偏小或线条太细,可以设置标签文字大小和线条粗细
fontsize:设置文字大小
plt.title("y等于x的平方",fontsize=50)
linewidth:设置线条
plt.plot(x,y,linewidth=30)

在这里插入图片描述

在这里插入图片描述

一张图 绘制多个线条

#创建x为-10到10的整数
x=np.arange(-10,10)
#y1是x的平方
y1=x**2
y2=x
#设置标题
plt.title("y1=x^2 x的取值范围[-10,10)")
#设置x轴名称
plt.xlabel("x轴",fontsize=12)
#设置y轴名称
plt.ylabel("y轴")
#绘图线条y1
plt.plot(x,y1)
#绘图线条y2
plt.plot(x,y2)

在这里插入图片描述

  • 设置x轴、y轴刻度

matplotlib.pyplot.xticks=(ticks=None,labels=None,**kwargs)
1.ticks:此参数是xtick位置的列表。和一个可选参数。
2.labels:此参数包含放置在给定刻度线位置的标签。它是一个可选参数
3.**kwargs:此参数是文本属性,用于控制标签的外观
-----------rotation:旋转角度
-----------color:颜色

#每个时间点的销量绘图
times=['2015/6/26','2015/8/1','2012/9/6','2015/10/12','2015/11/17','2016/1/28']
#随机出销量
sales=np.random.randint(500,2000,size=len(times))

#绘制图形
plt.plot(times,sales)

在这里插入图片描述

plt.xticks(range(1,len(time),2))

在这里插入图片描述

plt.xticks(range(1,len(times),2),rotation=4)
plt.plot(times,sales)

在这里插入图片描述

显示图表

显示所有打开的图形
jupyter notebooks会自动显性

#此处通过python交互模式演示

需要调用show()才会显示

在这里插入图片描述

#如果在jupyter中也想出现图形操作菜单,可以使用matplotlib中的魔术方法
%matlpotlib notebook
plt.xticks(range(1,len(times),2),rotation=45)
plt.plot(times,sales)

在这里插入图片描述

#如果又想回去原来的展示,使用另一个%matplotlib inline
%matplotlib inline

在这里插入图片描述

显示图例

from matplotlib import pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=["SimHei"]
times=['2015/6/26','2015/8/1','2012/9/6','2015/10/12','2015/11/17','2016/1/28','2016/2/12','2016/3/13','2016/4/19']
#随机出收入
income=np.random.randint(500,2000,size=len(times))
#支出
expenses=np.random.randint(300,1500,size=len(times))
#绘制图形
plt.xticks(range(1,len(times),2),rotation=45)
#注意:在使用图例前为每个图形设置label参数
plt.plot(times,income,label="收入")
plt.plot(times,expenses,label="支出")
#默认使用每个图形的label值作为图例说明
plt.legend()

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

plt.legend(loc="center")

在这里插入图片描述

显示每条数据的值x、y

plt.text(x,y,string,fontsize=15,vericalalignment=“top”,horizontalalignment=“right”)
1.x,y:表示坐标值上的值
2.string:表示说明文字
3.fontsize:表示字体大小
4.vericalalignment:(va)垂直对齐方式,参数:[‘center’|‘top’|‘botton’|‘baselin’]
5.horizontalalignment:(ha)水平对齐方式,参数:[‘center’|'‘right’|‘left’]

from matplotlib import pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif']=["SimHei"]
times=['2015/6/26','2015/8/1','2012/9/6','2015/10/12','2015/11/17','2016/1/28','2016/2/12','2016/3/13','2016/4/19']
#随机出收入
income=np.random.randint(500,2000,size=len(times))
#支出
expenses=np.random.randint(300,1500,size=len(times))
#绘制图形
plt.xticks(range(1,len(times),2),rotation=45)
#注意:在使用图例前为每个图形设置label参数
plt.plot(times,income,label="收入")
plt.plot(times,expenses,label="支出")
#默认使用每个图形的label值作为图例说明
plt.legend(loc="upper left")
#显示值
for a,b in zip(times,income):
    plt.text(a,b,b)
for a,b in zip(times,expenses):
    plt.text(a,b,b)

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值