(二)Python-Matplotlib实践绘图(折线图+散点图+热力图)

目录

前言

一、基础知识

(一)颜色参考

(二)点型及线型参考

二、折线图

三、散点图

四、热力图

总结


前言

        Matplotlib是常用的图形可视化工具,本文首先介绍对应的绘图基础知识,之后介绍几种绘图方式的实例应用。废话不多说,上干货!!!


一、基础知识

        所有的一切要从导入数据库开始,通常将pyplot子模块改写为plt:

import matplotlib.pyplot as plt

        针对绘图中所用的基础知识,包括线型、颜色的符号,图例的增加定义等,总结如下:

(一)颜色参考

颜色标志
蓝色'b'
绿色'g'
红色'r'
青色'c'
品红色'm'
黄色'y'
黑色'k'
白色'w'

(二)点型及线型参考

点型及线型标志
实线'-'
短横线'–'
点划线'-.'
虚线':'
点样式'.'
像素标记','
圆型'o'
倒三角'v'
正三角'^'
左三角'<'
右三件'>'
下箭头'1'
上箭头'2'
左箭头'3'
右箭头'4'
正方形's'
五边形'p'
星型'*'
六边形1'h'
六边形2'H'
加号'+'
X标记'x'
菱形'D'
窄菱形'd'
水平线'_'

(三)线条宽度、颜色、线型

plt.plot(x, y, c='r', ls='--', lw = '2')
# c='b'表示线条颜色
# ls='--'表示线型
# lw='2'表示线宽

(四)标签、标题及刻度

# 设置对应的标题及坐标轴
font = {'family': 'Times New Roman', 'color': 'k', 'size': 14}
plt.title('Title', fontdict=font)
plt.xlabel('x(m)', fontdict=font)
plt.ylabel('y(m)', fontdict=font)

# 设置刻度的字体
x1_label = ax1.get_xticklabels()
[x1_label_temp.set_fontname('Times New Roman') for x1_label_temp in x1_label]
y1_label = ax1.get_yticklabels()
[y1_label_temp.set_fontname('Times New Roman') for y1_label_temp in y1_label]

# 设置坐标轴刻度字体颜色设置
ax1.tick_params(axis='y',
                 labelsize=14,  # y轴字体大小设置
                 color='k',  # y轴标签颜色设置
                 labelcolor='k',  # y轴字体颜色设置
                 direction='in'  # y轴标签方向设置
                 )
ax1.tick_params(axis='x',
                 labelsize=14,  # x轴字体大小设置
                 color='k',  # x轴标签颜色设置
                 labelcolor='k',  # x轴字体颜色设置
                 direction='in'  # x轴标签方向设置
                 )

(五)强调点标记

无线绘图

plt.plot(x, y, 'o',ms='20')  

有线绘图

plt.plot(x, y, marker='*',ms='20')  

(六)多界面绘图

plt.figure()
ax1 = plt.gca()
xpoint = a[0][0, :]
ypoint = a[0][2, :]
ax1.plot(xpoint, ypoint, c='r', ls='--', lw='2')
ax1.grid()

plt.figure()
ax2 = plt.gca()
xpoint = a[1][0, :]
ypoint = a[1][2, :]
ax2 .plot(xpoint, ypoint, marker='o', ms='1')
ax2 .grid()

二、折线图

        废话不多说,直接上我们绘图过程中可能用到的所有功能的模版,大家可以根据需要删减:

plt.figure()
ax1 = plt.gca()
xpoint = a[0][0, :]
ypoint = a[0][2, :]
ax1.plot(xpoint, ypoint, c='r', ls='--', lw='2')

# 设置对应的标题及坐标轴
font = {'family': 'Times New Roman', 'color': 'k', 'size': 14}
plt.title('Title', fontdict=font)
plt.xlabel('x(m)', fontdict=font)
plt.ylabel('y(m)', fontdict=font)

# 设置刻度的字体
x1_label = ax1.get_xticklabels()
[x1_label_temp.set_fontname('Times New Roman') for x1_label_temp in x1_label]
y1_label = ax1.get_yticklabels()
[y1_label_temp.set_fontname('Times New Roman') for y1_label_temp in y1_label]

# 设置坐标轴刻度字体颜色设置
ax1.tick_params(axis='y',
                 labelsize=14,  # y轴字体大小设置
                 color='k',  # y轴标签颜色设置
                 labelcolor='k',  # y轴字体颜色设置
                 direction='in'  # y轴标签方向设置
                 )
ax1.tick_params(axis='x',
                 labelsize=14,  # x轴字体大小设置
                 color='k',  # x轴标签颜色设置
                 labelcolor='k',  # x轴字体颜色设置
                 direction='in'  # x轴标签方向设置
                 )
ax1.grid()

绘制所得图像如下:

三、散点图

plt.figure()
ax1 = plt.gca()
xpoint = a[0][0, :]
ypoint = a[0][2, :]
ax1.scatter(xpoint, ypoint, s=10, marker='o', c='m')

# 设置对应的标题及坐标轴
font = {'family': 'Times New Roman', 'color': 'k', 'size': 14}
plt.title('Title', fontdict=font)
plt.xlabel('x(m)', fontdict=font)
plt.ylabel('y(m)', fontdict=font)

# 设置刻度的字体
x1_label = ax1.get_xticklabels()
[x1_label_temp.set_fontname('Times New Roman') for x1_label_temp in x1_label]
y1_label = ax1.get_yticklabels()
[y1_label_temp.set_fontname('Times New Roman') for y1_label_temp in y1_label]

# 设置坐标轴刻度字体颜色设置
ax1.tick_params(axis='y',
                 labelsize=14,  # y轴字体大小设置
                 color='k',  # y轴标签颜色设置
                 labelcolor='k',  # y轴字体颜色设置
                 direction='in'  # y轴标签方向设置
                 )
ax1.tick_params(axis='x',
                 labelsize=14,  # x轴字体大小设置
                 color='k',  # x轴标签颜色设置
                 labelcolor='k',  # x轴字体颜色设置
                 direction='in'  # x轴标签方向设置
                 )
ax1.grid()

绘制所得图像如下:

四、热力图

        热力图是通过色块的颜色来反映数据的统计表格。模版如下:

import matplotlib.pyplot as plt
import numpy as np

harvest = np.random.randn(7, 7)
font = {'family': 'Times New Roman', 'color': 'k', 'size': 14}
yti = ["a", "b", "c", "d", "e", "f", "g"]
xti = ["1", "2", "3", "4", "5", "6", "7"]

plt.xticks(np.arange(len(xti)), labels=xti, font='Times New Roman')
plt.yticks(np.arange(len(yti)), labels=yti, font='Times New Roman')
plt.tick_params(labelsize=14)  # 刻度值字体大小设置(x轴和y轴同时设置)
plt.title("Harvest", fontdict=font)
plt.xlabel('x', fontdict=font)
plt.ylabel('y', fontdict=font)

plt.imshow(harvest)
plt.tight_layout()
plt.show()

绘制得到的图像如下:


总结

        以上就是Python中利用Matplotlib绘图的一些基础知识和技巧,同时介绍了三种图的绘制方法及示例,即折线图、散点图和热力图。读者可以根据自身需求修改模版中的代码,实现图形的绘制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

追风者...

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

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

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

打赏作者

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

抵扣说明:

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

余额充值