Matplotlib学习笔记

本文是Matplotlib的基础学习笔记,涵盖了折线图、柱形图和饼图的使用方法。讲解了如何设置坐标轴、调整线型颜色、添加图例、设定轴标签以及绘制水平柱形图。还介绍了饼图的参数,如labels、explode、shadow、startangle和autopct等。
摘要由CSDN通过智能技术生成

Matplotlib 基础的使用方法(初学笔记)

在进行画图前,需要对matplotlib.pyplot 进行导入
方法如下:

from matplotlib import pyplot as plt 

1. 折线图

plt.plot默认是一个2D的折线,画图时返回一个line对象
直接使用时需要如下:

plot([x], y, [fmt], *, data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

让图片显现出来
plt.show()
实例为:

x_age = [20,21,22,23,24,25,26,27,28,29]
y_salary = [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]
plt.plot(x_age,y_salary)
plt.show()

最基本的使用,不改变任何参数
以上是最基础的使用,如果仅仅是把数据plot出来,而不考虑颜色和线的形式等等,那么这样即可,但是如果希望图片能够有不同的形状,接下来可以更改一些plot里面的参数:

坐标轴:

plt.axis()

如果针对以上的坐标轴觉得不太合适,可以通过plt.axis()方法进行更改,输入的参数格式如下:
[xmin, xmax, ymin, ymax]

x_age = [20,21,22,23,24,25,26,27,28,29]
y_salary = [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]
plt.plot(x_age,y_salary)
plt.axis([10,50,5000,200000])
plt.show()

图片2
这样,更改了坐标轴的系数之后就整个的改变了图片的呈现形式,但本质上没有改变。

折线的形式(如颜色、点和线的形式)

根据matplotlib官方的文档,更改line2D对象的marker形式,只需要在画图时:

x_age = [20,21,22,23,24,25,26,27,28,29]
y_salary = [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]
plt.plot(x_age,y_salary,linestyle="--",color="g",marker="<")
plt.show()

在这里插入图片描述
这样就呈现出了如上的形式,
linestyle这一个参数代表了线型,color这一个参数代表了线的颜色,marker代表了点的显示,
在这里插入图片描述
详细参数更多的可以从matplotlib官方地址库查询到
当更加熟练后,可以浓缩操作

x_age = [20,21,22,23,24,25,26,27,28,29]
y_salary = [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]
plt.plot(x_age,y_salary,"<g--")
plt.show()

在这里插入图片描述
出来的效果与之前是一致的,参数的输入格式是
[marker][color][linestyle]

添加图例

与更改线型、颜色和点一样,有两种方法,适用于当有多条线放在一起时,辨识用。

x_age = [20,21,22,23,24,25,26,27,28,29]
y_salary = [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]
plt.plot(x_age,y_salary,"<g--",label ="age_salary")
plt.legend()
plt.show()

在这里插入图片描述
可以看到左上角多了一个图例`


x_age = [20,21,22,23,24,25,26,27,28,29]
y_salary = [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]
y_salary_2 = [i/2 for i in y_salary]
plt.plot(x_age,y_salary,"<g--",label ="age_salary")
plt.plot(x_age,y_salary_2 ,label="age_salary/2")
plt.legend()
plt.show()

在这里插入图片描述
第二种方法就是,

x_age = [20,21,22,23,24,25,26,27,28,29]
y_salary = [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]
y_salary_2 = [i/2 for i in y_salary]
plt.plot(x_age,y_salary,"<g--")
plt.plot(x_age,y_salary_2 )
plt.legend(["age_salary","age_salary/2"])
plt.show()

在这里插入图片描述
效果一致

设置相关的属性

1. x、y轴的标签

x_age = [20,21,22,23,24,25,26,27,28,29]
y_salary = [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]
plt.plot(x_age,y_salary,"<g--",label ="age_salary")
plt.legend()
plt.xlabel("age")
plt.ylabel("salary")
plt.title("Age-salary")
plt.show()

得到的效果如下:
在这里插入图片描述
可以清楚地看到,X/Y坐标轴都加上了对应的标签,且这个坐标系的标签也同样有了标签。

2. 更改坐标轴上的属性

在前图的基础上,发现其x/y坐标轴间隔有点大,过于模糊,可以通过plt.xticks来进行更改

x_age = [20,21,22,23,24,25,26,27,28,29]
y_salary = [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]
plt.plot(x_age,y_salary,"<g--",label ="age_salary")
plt.legend()
plt.xlabel("age")
plt.ylabel("salary")
plt.title("Age-salary")
plt.yticks(np.linspace(0,150000,5),labels =["one","two","three","four","five"])
plt.show()

在这里插入图片描述
plt.yticks()可以输入两个参数,第一个是要将刻度放在数据范围中的哪些位置,缺省情况下位置的值就是刻度标记的值 。第二个labels就是用对应的标签来盖住相关的值,此外还可以输入rotation,这样显示的标签可以进行旋转。

x轴同理

x_age = [20,21,22,23,24,25,26,27,28,29]
y_salary = [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]
plt.plot(x_age,y_salary,"<g--",label ="age_salary")
plt.legend()
plt.xlabel("age")
plt.ylabel("salary")
plt.title("Age-salary")
plt.yticks(np.linspace(0,150000,5))
plt.show()

在这里插入图片描述
这个是没有用标签覆盖的图

柱形图

基本使用

x_age = [20,21,22,23,24,25,26,27,28,29]
y_salary = [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]
plt.bar(x_age,y_salary)
plt.xlabel("age")
plt.ylabel("salary")
plt.title("Age-salary")
plt.show()

在这里插入图片描述
除了用的是bar的按钮,基本没啥差别,当然,如果有多种数据想要一起展现,那也是非常简单的。

多列数据一同展示

x_age = [20,21,22,23,24,25,26,27,28,29]

y_salary = [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]
y_salary_2 = [i/2 for i in y_salary]
x_index = np.arange(len(x_age))
width = 0.25
plt.bar(x_index+width,y_salary_2,width=width)
plt.bar(x_index,y_salary,width=width)
plt.xlabel("age")
plt.ylabel("salary")
plt.title("Age-salary")
plt.show()

在这里插入图片描述
把宽度设置一下即可,其他大致相同,color和label都和折线图一样设置

horizontal bar

想横着展示:

y_salary = [10000,20000,30000,40000,50000,60000,70000,80000,90000,100000]
y_salary_2 = [i/2 for i in y_salary]
x_index = np.arange(len(x_age))
height = 0.25
plt.barh(x_index+height,y_salary_2,height=height)
plt.barh(x_index,y_salary,height=height)
plt.xlabel("age")
plt.ylabel("salary")
plt.title("Age-salary")
plt.show()

在这里插入图片描述

饼图Pie Chart

slice = [100,80,60,50,40]

label = ["A","B","C","D","E"]
explode = [0.1,0,0,0,0]
plt.pie(slice,labels=label,explode=explode,shadow=True,
        startangle=90,autopct="%1.1f%%",wedgeprops={"edgecolor":"black"})
plt.title("Pie chart")
plt.show()  

同上,直接用plt.pie进行画图,只需要调整参数即可
labels参数就是给饼图的那个部分贴标签,按照slice传输进去的顺序
explode顺序也是一样,其作用是让某一个部分凸出显示
shadow是有阴影效果
startangle是指一开始左上角那个部分呈现多少度,我这里设置的90度,
autopct则是显示百分数,
wedgeprops是让每个块之间显示分界线

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值