Matplotlib基础

Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。

Matplotlib 可以用来绘制各种静态,动态,交互式的图表。

一.折线图

Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API

plot() 函数是绘制二维图形的最基本函数

多条曲线不指定颜色时,会自动选择不同颜色。

import matplotlib.pyplot as plt              #引入pyplot模块,并取别名plt
input_value = [0, 1, 2, 3, 4, 5]
squares = [0, 1, 4, 9, 16, 25]
squares1 = [0, 2, 4, 6, 8, 10]
plt.plot(input_value, squares, marker = 'o', linewidth=5)  #linewidth决定线条的粗细
plt.plot(input_value, squares1, marker = 'v', linewidth=1) #marker参数定义数据点的形状
#设置图表标题,坐标轴加标签
plt.title("Square Numbers",fontsize=24)      #fontsize决定文字大小
plt.xlabel("Value",fontsize=14)              #xlabel为x轴设置标题
plt.ylabel("Square of Value",fontsize=14)    #ylabel为y轴设置标题
#设置刻度标记大小
plt.tick_params(axis='both',labelsize=14)
plt.show()

以下为markerke可设置的值

fmt 参数

fmt 参数定义了基本格式,即 '[marker][line][color]'

plt.plot(ypoints, 'o:r')

标记大小与颜色

可以自定义标记的大小与颜色,使用的参数分别是:

  • markersize,简写为 ms:定义标记的大小。
  • markerfacecolor,简写为 mfc:定义标记内部的颜色。
  • markeredgecolor,简写为 mec:定义标记边框的颜色。
import matplotlib.pyplot as plt
ypoints = [6, 2, 13, 10]
plt.plot(ypoints, 'o:r', ms=10, mec = 'g', mfc = 'b')
plt.show()

 grid() 方法来设置图表中的网格线

参数说明:

  • b:可选,默认为 None,可以设置布尔值,true 为显示网格线,false 为不显示,如果设置 **kwargs 参数,则值为 true
  • which:可选,可选值有 'major'、'minor' 和 'both',默认为 'major',表示应用更改的网格线。
  • axis:可选,设置显示哪个方向的网格线,可以是取 'both'(默认),'x' 或 'y',分别表示两个方向,x 轴方向或 y 轴方向
  • **kwargs:可选,设置网格样式,可以是 color='r', linestyle='-' 和 linewidth=2,分别表示网格线的颜色,样式和宽度
import matplotlib.pyplot as plt
ypoints = [6, 2, 13, 10]
plt.plot(ypoints, 'o:r', ms=10, mec = 'g', mfc = 'b')
plt.grid(b=None, which='major', axis='both')
plt.show()

subplot()  方法绘制多个子图 

subplot(nrows, ncols, index, **kwargs) subplot(pos, **kwargs) subplot(**kwargs) subplot(ax)
以上函数将整个绘图区域分成 nrows 行和 ncols 列,然后从左到右,从上到下的顺序对每个子区域进行编号 1...N ,左上的子区域的编号为 1、右下的区域编号为 N,编号可以通过参数 index 来设置。

import matplotlib.pyplot as plt

#plot 1:
xpoints = [0, 6]
ypoints = [0, 100]

plt.subplot(1, 2, 1)
plt.plot(xpoints,ypoints)
plt.title("plot 1")

#plot 2:
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]

plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.title("plot 2")

plt.suptitle("RUNOOB subplot Test")
plt.show()

  二.散点图

import matplotlib.pyplot as plt
input_value = [0, 1, 2, 3, 4, 5]
squares = [0, 1, 4, 9, 16, 25]
plt.scatter(input_value, squares, s=100)  #scatter可绘制点,s可决定大小
#设置图表标题,坐标轴加标签
plt.title("Square Numbers", fontsize=24)  #fontsize决定文字大小
plt.xlabel("Value", fontsize=14)          #xlabel为x轴设置标题
plt.ylabel("Square of Value", fontsize=14)#ylabel为y轴设置标题
#设置刻度标记大小
plt.tick_params(axis='both', which='major', labelsize=14)
plt.show()

三.柱状图

bar() 方法来绘制柱形图,垂直方向的柱形图可以使用 barh() 方法

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align='center', data=None, **kwargs)

参数说明:

x:浮点型数组,柱形图的 x 轴数据。

height:浮点型数组,柱形图的高度。

width:浮点型数组,柱形图的宽度。barh() 方法使用 height 设置 

bottom:浮点型数组,底座的 y 坐标,默认 0。

align:柱形图与 x 坐标的对齐方式,'center' 以 x 位置为中心,这是默认值。 'edge':将柱形图的左边缘与 x 位置对齐。要对齐右边缘的条形,可以传递负数的宽度值及 align='edge'。

**kwargs::其他参数。

import matplotlib.pyplot as plt

x = ["A", "B", "C", "D"]
y = [12, 22, 6, 18]
plt.barh(x, y, height = 0.1)
plt.show()

四.饼状图

pyplot 中的 pie() 方法来绘制饼图

matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, center=0, 0, frame=False, rotatelabels=False, *, normalize=None, data=None)[source]

参数说明:

x:浮点型数组,表示每个扇形的面积。

explode:数组,表示各个扇形之间的间隔,默认值为0。

labels:列表,各个扇形的标签,默认值为 None。

colors:数组,表示各个扇形的颜色,默认值为 None。

autopct:设置饼图内各个扇形百分比显示格式,%d%% 整数百分比,%0.1f 一位小数, %0.1f%% 一位小数百分比, %0.2f%% 两位小数百分比。

labeldistance:标签标记的绘制位置,相对于半径的比例,默认值为 1.1,如 <1则绘制在饼图内侧。

pctdistance::类似于 labeldistance,指定 autopct 的位置刻度,默认值为 0.6。

shadow::布尔值 True 或 False,设置饼图的阴影,默认为 False,不设置阴影。

radius::设置饼图的半径,默认为 1。

startangle::起始绘制饼图的角度,默认为从 x 轴正方向逆时针画起,如设定 =90 则从 y 轴正方向画起。

counterclock:布尔值,设置指针方向,默认为 True,即逆时针,False 为顺时针。

wedgeprops :字典类型,默认值 None。参数字典传递给 wedge 对象用来画一个饼图。例如:wedgeprops={'linewidth':5} 设置 wedge 线宽为5。

textprops :字典类型,默认值为:None。传递给 text 对象的字典参数,用于设置标签(labels)和比例文字的格式。

center :浮点类型的列表,默认值:(0,0)。用于设置图标中心位置。

frame :布尔类型,默认值:False。如果是 True,绘制带有表的轴框架。

rotatelabels :布尔类型,默认为 False。如果为 True,旋转每个 label 到指定的角度。

import matplotlib.pyplot as plt
y = [35, 25, 25, 15]
plt.pie(y,
        labels=['A','B','C','D'], # 设置饼图标签
        colors=["#d5695d", "#5d8ca8", "#65a479", "#a564c9"], # 设置饼图颜色
        explode=(0, 0.2, 0, 0), # 第二部分突出显示,值越大,距离中心越远
        autopct='%.2f%%', # 格式化输出百分比
       )
plt.title("RUNOOB Pie Test")
plt.show()

五. 自动计算以及对绘图的处理

import matplotlib.pyplot as plt
input_value = list(range(1, 1001))
squares = [x**2 for x in input_value]
"""
scatter可绘制点
c决定颜色(可使用颜色英文首字母或者全拼,也可使用rgb(rgb是0~1间的小数数组))
edgecolors决定数据点的轮廓
s可决定大小
"""
plt.scatter(input_value, squares, c='r', edgecolors='none', s=10)
#设置图表标题,坐标轴加标签
plt.title("Square Numbers", fontsize=24)  #fontsize决定文字大小
plt.xlabel("Value", fontsize=14)          #xlabel为x轴设置标题
plt.ylabel("Square of Value", fontsize=14)#ylabel为y轴设置标题
#设置刻度标记大小
plt.tick_params(axis='both', which='major', labelsize=14)
#设置坐标轴取值范围
plt.axis([0, 1100, 0, 1100000])
plt.show()

六.颜色隐射

import matplotlib.pyplot as plt
input_value = list(range(1, 1001))
squares = [x**2 for x in input_value]
"""
颜色隐射就是渐变色
将参数c设置为y轴列表,参数cmap决定哪个颜色
"""
plt.scatter(input_value, squares, c=squares, cmap=plt.cm.Blues , edgecolors='none', s=10)
#设置图表标题,坐标轴加标签
plt.title("Square Numbers", fontsize=24)  #fontsize决定文字大小
plt.xlabel("Value", fontsize=14)          #xlabel为x轴设置标题
plt.ylabel("Square of Value", fontsize=14)#ylabel为y轴设置标题
#设置刻度标记大小
plt.tick_params(axis='both', which='major', labelsize=14)
#设置坐标轴取值范围
plt.axis([0, 1100, 0, 1100000])
plt.show()

 七.下载

最后加以下代码即可,下载地址是当前过程文件的地址,参数就是图片名称

plt.savefig('squares.png')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

<千繁/>

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

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

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

打赏作者

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

抵扣说明:

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

余额充值