(二)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绘图的一些基础知识和技巧,同时介绍了三种图的绘制方法及示例,即折线图、散点图和热力图。读者可以根据自身需求修改模版中的代码,实现图形的绘制。
作者:追风者…