横纵坐标显示时间和空间后,第三个数据的特征有时就不好表示了,3d图有的时候看起来更复杂。对于某些情况,用颜色来表示更加简洁。
这里展示的效果图有点像烟花,所以选了这张,但是换其他的cmap才能使得数据展示更加直观
文章来源:https://www.toymoban.com/news/detail-534988.html
先放一个快捷简洁版本,后面将细节(高级定制版😂)。文章来源地址https://www.toymoban.com/news/detail-534988.html
import numpy as np
import matplotlib.pyplot as plt
def main():
data = np.loadtxt('文件路径', delimiter=',')
cmap = plt.cm.viridis
plt.imshow(data, cmap=cmap, interpolation='nearest', aspect='auto')
plt.colorbar(label='Z轴数值')
plt.xlabel('空间位置')
plt.ylabel('时间')
plt.close()
if __name__ == "__main__":
main()
import numpy as np
import matplotlib.pyplot as plt
def main():
# 从文本文件中读取数据
# loadtxt要求文件每一行数据的格式相同,会读取为矩阵的格式
# delimiter:数据之间的分隔符
# 还有其他的选项,比如跳过前n行、如果行的开头为指定标志就会跳过该行、是指只使用指定列,参数类型为list、对数据进行预处理
data = np.loadtxt('data.log', delimiter=',')
# 仅保留所需的图片里纵坐标区域(因为之后我需要转置矩阵,其实就是对目前矩阵的列做切片)
start_col = 1
end_col = 2001 # 注意,切片操作不包括结束索引的元素,所以这里设为1001以保留第1000列(还没转置所以是列)
data = data[:, start_col:end_col]
# 同理,切片矩阵行
start_row = 400
end_row = 900
data = data[start_row:end_row, :]
# 根据需要矩阵转置
data = data.T
# 创建颜色映射inferno viridis OrRd(还有更多可选)
cmap = plt.cm.OrRd
# 调整图像尺寸
fig, ax = plt.subplots(figsize=(24, 32))
# 绘制2D图片
plt.imshow(data, cmap=cmap, interpolation='nearest', aspect='auto')
# 创建颜色条
cbar = plt.colorbar(label='access times') # 颜色代表的含义
cbar.ax.tick_params(labelsize=20) # 设置刻度字体大小
cbar.set_label('access times', fontsize=20) # 设置内容字体大小
# 设置纵坐标刻度
num_rows, _ = data.shape
y_ticks_interval = 200 # 设置刻度间隔
plt.yticks(np.arange(0, num_rows, y_ticks_interval), fontsize=20)
plt.xticks(fontsize=20)
# 设置坐标轴标签
plt.xlabel('epochs', fontsize=20)
plt.ylabel('fpn', fontsize=20)
# 显示图像
plt.show()
plt.close()
if __name__ == "__main__":
main()
到了这里,关于用颜色表示数据的第三个维度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!