(七)Python绘图基础:Matplotlib绘图

目录

Matplotlib绘图

折线图

绘制一组数据

绘制多组数据

散点图(scatter)

条形图(竖)

条形图(横)

饼图

Matplotlib属性

保存图片

色彩和样式

文字

其他属性

绘制子图

子图-subplot()

子图-subplots()

子图-axes() 


Matplotlib绘图

最著名Python绘图库, 主要用于二维绘图

– 画图质量高

– 方便快捷的绘图模块

  • 绘图API——pyplot模块

折线图

绘制一组数据

代码如下所示:

import matplotlib.pyplot as plt
plt.plot(range(7),[3, 4, 7, 6, 3, 7, 9])    # 设立X,Y轴坐标,X轴不写也可以默认从零开始
plt.show()

运行结果如下所示:

绘制多组数据

 代码如下所示:

import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0., 2., 0.1)    # 生成数据
plt.plot(t, t, t, t+2, t, t**3)    # 绘制多组数据
plt.show()

运行结果如下所示:

散点图(scatter)

 代码如下所示:

import matplotlib.pyplot as plt
plt.scatter(range(7),[3, 4, 7, 6, 3, 7, 9]) # 绘制散点图
plt.show()

        除了使用scatter函数之外,还可以使用plot函数后加参数'o'来实现,代码如下所示:

import matplotlib.pyplot as plt
plt.plot(range(7),[3, 4, 7, 6, 3, 7, 9],'o') # 绘制散点图
plt.show()

运行结果如下所示:

条形图(竖)

代码如下所示:

import matplotlib.pyplot as plt
plt.bar(range(7),[3, 4, 7, 6, 3, 7, 9]) # 绘制条形图
plt.show()

 运行结果如下所示:

条形图(横)

代码如下所示:

import matplotlib.pyplot as plt
plt.barh(range(7),[3, 4, 7, 6, 3, 7, 9]) # 绘制横的条形图
plt.savefig('E:\截图\绘图\huitu2.jpg')
plt.show()

 运行结果如下所示:

饼图

代码如下所示:

import matplotlib.pyplot as plt
plt.pie([3, 4, 7, 6, 3, 7, 9], labels=range(7), autopct='%1.2f%%', startangle=90) # 绘制饼图,labels设置标签,autopct设置显示百分比,startangle显示起始角度
plt.savefig('E:\截图\绘图\huitu3.jpg')
plt.show()

运行结果如下所示:

Matplotlib属性

        Matplotlib可以控制许多的默认属性,本文只举一些属性来介绍;

保存图片

可以用savefig()函数来保存绘制好的图片,代码如下所示:

import matplotlib.pyplot as plt
plt.plot(range(7),[3, 4, 7, 6, 3, 7, 9],"r-.")
plt.savefig('E:\截图\绘图\Fui.jpg')    # 填保存路径即可
plt.show()

色彩和样式

符号bgrcmykw
颜色bluegreenredcyan(青色)magenta(洋红色)yellowblackwhite
线型'-''--''-.'':''None'' '''
描述实线长虚线虚线加点点虚线
标记"o""v""s""^""p""*""h""+""D"
描述散点倒三角正方形正三角五边形五角星六边形加号菱形

        只展示了一部分常用的格式,具体每个色彩和样式就不一一展示,只展示几个色彩样式,代码如下所示:

import matplotlib.pyplot as plt
plt.plot(range(7),[3, 4, 7, 6, 3, 7, 9],"r*") 
plt.show()

运行结果如下所示:

 代码如下所示:

import matplotlib.pyplot as plt
plt.plot(range(7),[3, 4, 7, 6, 3, 7, 9],"c:")
plt.show()

运行结果如下所示:

文字

        可以在图上加标题、横坐标的标签和纵坐标的标签,还可以将数轴上的数字用文字来表示。具体代码如下所示:

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']    # 设置中文字体,不然显示不了中文
plt.title('标题')
plt.xlabel('X 标签')
plt.ylabel('Y 标签')
plt.plot( [3, 4, 7, 6])
index_name=['1季度', '2季度', '3季度', '4季度'] # 设置X坐标的标签
plt.xticks(range(4), index_name)        # 显示X坐标的标签
plt.savefig('E:\截图\绘图\huitu.jpg')
plt.show()

 运行结果如下所示:

其他属性

        将简述图的大小、精度、颜色、线型、线宽、图例等等属性,代码如下所示:

import matplotlib.pyplot as plt
import numpy as np

plt.figure(figsize=(8, 6), dpi=100) # 图的大小,还有精度
t = np.arange(0., 2., 0.1)
plt.plot(t, t, color='red', linestyle='-', linewidth=3, label='Line 1') # 颜色、线型、线宽、图例的设定
plt.plot(t, t + 2, color='green', linestyle='', marker='*', linewidth=3, label='Line 2')
plt.plot(t, t ** 3, color='blue', linestyle='', marker='+', linewidth=3, label='Line 3')
plt.legend(loc='upper left')    # 图例的位置,可以设为'best',会自动放到最合适的地方
plt.savefig('E:\截图\绘图\huitu1.jpg')
plt.show()

运行结果如下所示:

绘制子图

  • 在Matplotlib中绘图在当前图形(figure)和当前坐标系(axes)中进行,默认在一个编号为1的figure中绘图,可以在一个图的多个区域分别绘图
  • 使用subplot()/subplots()函数和axes()函数

子图-subplot()

        在 subplot()里,有三个参数,第一个是有几行,第二个是有几列,第三个是图的编号,也就是第几个,比如plt.subplot(211)的意思就是,有两行,这是第一行第一个图。

代码如下所示:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 300)    # 产生均匀区间的一组数据
plt.figure()  # 默认创建,缺省
plt.subplot(211)  # 第一个子图
plt.plot(x, np.sin(x), color='r')
plt.subplot(212)  # 第二个子图
plt.plot(x, np.cos(x), color='g')
plt.savefig('E:\截图\绘图\huitu1.jpg')
plt.show()

运行结果如下所示:

子图-subplots()

        相对于subplot来说,subplots使用起来更加灵活,具体代码如下所示:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 300)
fig, (ax0, ax1) = plt.subplots(2, 1)
# 指定子图是2行1列的,函数的第一个返回值是图对象本身,第二个返回值是各子图
# 后续绘图可以直接使用子图对象的plot()方法来实现
ax0.plot(x, np.sin(x), color='r')
ax0.set_title('subplot1')
plt.subplots_adjust(hspace=0.5)  # hspace表示垂直方向距离,wspace表示水平方向距离
ax1.plot(x, np.cos(x), color='g')
ax1.set_title('subplot2')
plt.savefig('E:\截图\绘图\huitu4.jpg')
plt.show()

运行结果如下所示:

子图-axes() 

相对于subplot()/subplots()函数来说,axes()函数的图是重叠在一起的,所以要对其参数进行设定,具体代码如下所示:

axes([left,bottom,width,height]) 参数范围为(0,1)

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-np.pi, np.pi, 300)
plt.axes([.1, .1, 0.8, 0.8])    # 设置到边框的距离
plt.plot(x, np.sin(x), color='r')
plt.axes([0.3, 0.15, 0.4, 0.3]) # 设置到边框的距离
plt.plot(x, np.cos(x), color='g')
plt.savefig('E:\截图\绘图\huitu5.jpg')
plt.show()

 运行结果如下所示:

 Pandas绘图基础在日后进行补充

  • 37
    点赞
  • 294
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值