【数据分析之Matplotlib基础001】Matplotlib安装与如何绘出你的第一条线

        为了将数据变成大家喜欢的图形数据,Python提供了matplotlib数据可视化库来绘制各种数据图。

        Matplotlib是Python的一个2D绘图库,可以绘制直方图、功率谱、条形图、错误图、散点图等。

1、matplotlib环境搭建

        不管你是用Anaconda创建的Python环境,还是独自安装的Python,都可以在相应的Python环境下,输入pip install matplotlib=XX.XX.XX(XX.XX.XX为matplotlib的版本号,不指定默认为最新版)就可以了。安装完在Python环境下输入import matplotlib.pyplot as plt。如果运行不出错,就说明Matplotlib已经安装成功了。

        如果上述的安装方法失败的话,可以去Python的官方网站搜索Matplotlib,选择你需要的版本wheel文件就可以了

2、绘制基础

        在使用matplotlib绘制图形时,其中有两个最为常用的场景。一个是画点,一个是画线。pyplot的基本方法如下:

方法名

说明

title()

设置图表的名称

xlabel()

设置x轴标签

ylabel()

设置y轴标签

xticks(x, ticks, rotation)

设置x轴的刻度,rotation旋转角度

yticks()

设置y轴的刻度

plot()

绘制线性图表

show()

显示图表

legend()

显示图例

text(x, y, text)

显示每条数据的值,x, y值的位置

figure(name, figsize(w, h), dpi=n)

设置图片大小

3、绘制一条直线

        使用matplotlib绘制图形时,一般的流程如下:

        (1)导入matplotlib.pyplot模块,一般习惯命名为plt。pyplot主要主要用于绘制数据图形。

        (2)将需要绘制的数据点传递给plt.plot()函数;

        (3)通过函数plt.show()打开图形查看器,显示刚刚绘制的图形。

        实例:

import matplotlib.pyplot as plt

plt.plot([0, 2], [1, 4])

plt.show()

         上图就是按照点(0, 1)(2, 4)来绘制的,也就是说传递给plot的第一个参数是x,第二参数是y。

        那么多点绘制就可以是

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

plt.plot(x, y)

plt.show()

4、设置标签文字和线条粗细

        可能你觉得上面的两幅图有点不好看,想优化一下图形,比如设置一下横纵坐标标签、改变线条的粗细、颜色等等。

        实例

import matplotlib.pyplot as plt

# 设置标签文字和线条粗细

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

# 设置线条宽度为5,颜色为红色(red)

plt.plot(x, y, linewidth=5, color='r')

plt.title('Numbers', fontsize=24)

plt.xlabel('datas', fontsize=16)

plt.ylabel('squares', fontsize=16)

plt.show()

        在matplotlib中是默认不支持中文显示,如果你设置了中文,就会出现乱码的情况

        那如果想要设置横纵坐标的标签为中文的话,就需要在标签代码前加一行代码:

plt.rcParams['font.sans-serif'] = ['SimHei'] # SimHei 黑体

import matplotlib.pyplot as plt

# 设置标签文字和线条粗细

x = [1, 2, 3, 4, 5]

y = [1, 4, 9, 16, 25]

# 设置线条宽度为5,颜色为红色(red)

plt.plot(x, y, linewidth=5, color='r')

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

plt.title('Numbers', fontsize=24)

plt.xlabel('数据', fontsize=16)

plt.ylabel('平方', fontsize=16)

plt.show()

5、绘制一条一元二次方程的曲线

        我们都知道一条曲线是由上千上万个数据点构成的,那么我们在绘制曲线时就是可以使用循环先生成所需的数据点,再传入plot函数,最后调用show函数显示绘制的图形。

import matplotlib.pyplot as plt

# 绘制曲线

x = range(-500, 500)

y = [i**2 for i in x]

plt.plot(x, y, linewidth=3, color='b')

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

plt.title('y=x**2', fontsize=18)

plt.xlabel('距离(m)', fontsize=12)

plt.ylabel('高度(m)', fontsize=12)

plt.savefig('一元二次曲线图.jpg')

plt.show()

           这里使用plt.savefig()保存函数,如果在括号只写文件名不加后缀的话,将会默认保存为PNG格式。

        同时,上图我们可以看到解决了中文乱码问题,但是横坐标的负号又出现乱码了。

        再加上 plt.rcParams['axes.unicode_minus'] = False 就ok了

6、绘制两条或多条曲线

        如果想要在一张图上绘制多条曲线,可以这样搞。

import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(0, 10, 100)

sin_y = np.sin(x)

cos_y = np.cos(x)

plt.plot(x, sin_y, lw=2, c='r', label=r"$\sin(x)$")

plt.plot(x, cos_y, lw=2, c='b', label=r"$\cos(x)$")

plt.legend()

plt.rcParams['font.sans-serif'] = ['FangSong']

plt.title('三角函数曲线', fontsize=18)

plt.title("tilte1", loc="left", fontdict={"size": "xx-large", "color": "r", "family": "Times New Roman"})

plt.title("三角函数曲线", loc="right", size=18, color="c", style="oblique",family="SimHei")

plt.xlabel('x', fontsize=12)

plt.ylabel('y', fontsize=12)

plt.show()

           plt.legend()函数还有loc、bbox_to_anchor、 ncol、title 、shadow、fancybox等参数

        (1)位置参数loc也可以用数字来表示图例的位置

位置参数值

位置数值

位置参数值

位置数值

位置参数值

位置数值

upper right

1

upper left

2

lower left

3

lower right

4

center left

6

center right

5/7

lower center

8

upper center

9

center

10

        (2)线框位置参数bbox_to_anchor,它的参数值是一个四元元组,且使用Axes坐标系统。如bbox_to_anchor=(0.05,0.95)。

                第一个元素代表距离画布左侧的x轴长度的倍速的距离;

                第二个元素代表距离画布底部的y轴长度的倍数的距离;

                第三个元素代表元素x轴长度的倍数的线框长度;

                第四个元素代表y轴长度的倍数的线框宽度。

        注意:当使用线框位置参数bbox_to_anchor时,不建议与loc一起使用。

        (3)ncol为展示图例的列数

        (4)title为图例的标题

        (5)shadow控制线框是否添加阴影

        (6)fancybox控制线框是直角还是圆角

        如:plt.legend(loc = "upper left", ncol = 2,title = "power function",shadow=True, fancybox=True)

        上面展示了plt.title()中参数的两种使用方法。

        其中:

                位置参数loc可以选择“left”,“center”和“right”。

                family控制的是字体类别,

                size控制字体大小,

                color控制字体颜色

                style控制字体风格。

        那如果想将两条线分开,画在同一个画布上,就可以使用plt.subplot()函数

import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(0, 10, 100)

sin_y = np.sin(x)

cos_y = np.cos(x)

plt.rcParams['font.sans-serif'] = ['KaiTi']

plt.rcParams['axes.unicode_minus'] = Falseplt.subplot(2, 1, 1)

plt.plot(x, sin_y, linewidth=2, color='r', label=r"\\sin(x)sin(x)\\sin(x)sin(x)")

plt.legend(loc=3)

plt.title('三角函数曲线', fontsize=18)

plt.xlabel('x', fontsize=12)

plt.ylabel('y', fontsize=12)

plt.subplot(2, 1, 2)

plt.plot(x, cos_y, linewidth=2, color='b', label=r"$\cos(x)$")

plt.xlabel('x', fontsize=12)

plt.ylabel('y', fontsize=12)

plt.legend(loc=3)

plt.show()


关注公众号,获取200+本Python、人工智能相关学习资料。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值