Python中matplotlib模块plot用法,实现绘画折线,点状等图


每天记录一下编程中遇到的问题

1.语法

 

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

 

根据x,y数据,实现折线或点状图。
x:横坐标数据,可选参数。
y:纵坐标数据。
fmt:可选参数,定义图形基本格式,如颜色、标记和线型。

  

2.简单用法

 
 
import matplotlib.pyplot as plt

# 这两行代码解决 plt 中文显示的问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# X轴坐标值
x_labels = ['2021-2-12', '2021-2-13', '2021-2-14', '2021-2-15', '2021-2-16', '2021-2-17', '2021-2-18', '2021-2-19']

# Y轴坐标值
y_data1 = [100, 800, 50, 200, 150, 300, 100, 10]
y_data2 = [600, 200, 250, 150, 700, 400, 300, 500]
y_data3 = [50, 300, 200, 100, 1000, 200, 300, 250]

# 默认折线图
plt.plot(x_labels, y_data1)

# 折角是蓝色圆点折线图
# plt.plot(x_labels, y_data1, 'bo')

# 以Y轴索引为X轴值实现折线图
# plt.plot(y_data1)

# 点状图
# plt.plot(y_data1, 'c.')
plt.show()
默认折线图 plt.plot(x_labels, y_data1)
# plt.show()

 

3.plot支持多个参数,如color(颜色),marker(标记点),linestyle(线条风格),linewidth(线宽),markersize(标记点大小)等。

把这些参数都加进去看一下效果。

plt.plot(x_labels, y_data1, color='green', marker='o', linestyle='dashed',linewidth=2, markersize=12)

效果图展示:

 

 

 

4.x,y数据支持对象输入,如字典(dict),pandas.DataFame,numpy

y_data4 = {"x_labels": ['2021-2-12', '2021-2-13', '2021-2-14',
                        '2021-2-15', '2021-2-16', '2021-2-17', '2021-2-18', '2021-2-19'],
           "y_test": [600, 200, 250, 150, 700, 400, 300, 500]}
# 获取y_data4字典x_labels为X轴,y_test为Y轴

plt.plot("x_labels", "y_test", data=y_data4)

 

5.支持多条图型展示

一般我们做表格时,不仅是一条折线图或点状图,可能会有二条,三条甚至多条,遇到这种情况,我们plot函数支持两种方式实现。

1)多次调用plot函数。

plt.plot(x_labels, y_data1)
plt.plot(x_labels, y_data2)
plt.plot(x_labels, y_data3)

2)原数据为二维数组。

data5 = [['2021-2-12', '2021-2-13', '2021-2-14', '2021-2-15', '2021-2-16', '2021-2-17', '2021-2-18', '2021-2-19'],
         [600, 200, 250, 150, 700, 400, 300, 500],
         [50, 300, 200, 100, 1000, 200, 300, 250],
         [100, 800, 50, 200, 150, 300, 100, 10]]

# 展示多条折线图2, 若data5是二维数组,其中第一列为X轴,其余列为Y轴
plt.plot(data5[0], data5[1], data5[2], data5[3])

3)指定 [x]y[fmt] 多个集合。

plt.plot(x_labels, y_data1, 'r--', x_labels, y_data2, '-g', x_labels, y_data3, '--')

 

6.[fmt]可选参数介绍

fmt = '[marker][line][color]'

 这里仅列出部分参考值。

Markers

 

Line Styles

 

如:

'b'    # blue markers with default shape
'or'   # red circles
'-g'   # green solid line
'--'   # dashed line with default color
'^k:'  # black triangle_up markers connected by a dotted line

Colors

 

完整代码:

# -*- coding: utf-8 -*-
"""
-------------------------------------------------
# @Date     :2021/2/20 11:22
# @Author   :wmzhong
# @Email    :wmzhong_01@163.com
# @Bolg     :https://www.cnblogs.com/wmzhong/
# @jianshu  :https://www.jianshu.com/u/2ef83f0891c7
# @Description:折线,点状图
-------------------------------------------------
"""

import matplotlib.pyplot as plt

# 这两行代码解决 plt 中文显示的问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# X轴坐标值
x_labels = ['2021-2-12', '2021-2-13', '2021-2-14', '2021-2-15', '2021-2-16', '2021-2-17', '2021-2-18', '2021-2-19']

# Y轴坐标值
y_data1 = [100, 800, 50, 200, 150, 300, 100, 10]
y_data2 = [600, 200, 250, 150, 700, 400, 300, 500]
y_data3 = [50, 300, 200, 100, 1000, 200, 300, 250]
y_data4 = {"x_labels": ['2021-2-12', '2021-2-13', '2021-2-14',
                        '2021-2-15', '2021-2-16', '2021-2-17', '2021-2-18', '2021-2-19'],
           "y_test": [600, 200, 250, 150, 700, 400, 300, 500]}
data5 = [['2021-2-12', '2021-2-13', '2021-2-14', '2021-2-15', '2021-2-16', '2021-2-17', '2021-2-18', '2021-2-19'],
         [600, 200, 250, 150, 700, 400, 300, 500],
         [50, 300, 200, 100, 1000, 200, 300, 250],
         [100, 800, 50, 200, 150, 300, 100, 10]]

# 设置Y轴标题
plt.ylabel("零花钱/元")

# 标题
plt.title("过年得压岁钱调查结果")

# 默认折线图
# plt.plot(x_labels, y_data1)

# 折角是蓝色圆点折线图
# plt.plot(x_labels, y_data1, 'bo')

# 以Y轴索引为X轴值实现折线图
# plt.plot(y_data1)

# 点状图
# plt.plot(y_data1, 'c.', linestyle='dashed')
# plt.plot(x_labels, y_data1, color='green', marker='o', linestyle='dashed',linewidth=2, markersize=12)

# 获取y_data4字典x_labels为X轴,y_test为Y轴
# plt.plot("x_labels", "y_test", data=y_data4)

# 展示多条折线图1
# plt.plot(x_labels, y_data1)
# plt.plot(x_labels, y_data2)
# plt.plot(x_labels, y_data3)

# 展示多条折线图2, 若data5是二维数组,其中第一列为X轴,其余列为Y轴
# plt.plot(data5[0], data5[1], data5[2], data5[3])

# 展示多条折现图3,指定 [x], y, [fmt] 多个集合
# 设置X坐标尺寸大小,不设置会导致X轴显示过于拥挤,适度设置。
plt.tick_params(labelsize=8)
plt.plot(x_labels, y_data1, 'r--', x_labels, y_data2, '-g', x_labels, y_data3, '--')

# 设置图标
plt.legend(labels=["小明", "小红", "小华"])
plt.show()

 

参考资料:https://matplotlib.org/3.1.1/api/pyplot_summary.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM