Python画图之plt笔记

yangxiaodong 2019-06-10 AM 145℃ 0条

引言

实验结果需要可视化的时候,画图又变成了一个简单又复杂的且繁琐的工作。每次画图虽然大同小异,但是记不住代码,这次就把代码稍微整理一下,所用方法不具有普适性,仅供参考。

plt.plot

非常实用的画图函数,具体使用方法如下:

import matplotlib.pyplot as plt
import numpy as np

#随机生成一组数用来画图。
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [0.1, 0.3, 0.2, 0.2, 0.6, 0.8, 0.9, 0.52, 0.3, 0.7]

plt.plot(x, y)
plt.show()

image.png

当然还有一些别的小技巧,比如想把每一个坐标都表标记一下,直接使用plt.plot()也可以做到。

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y1 = [0.1, 0.3, 0.2, 0.2, 0.6, 0.8, 0.9, 0.52, 0.3, 0.7]
y2 = [k+0.2 for k in y1]

#linestyle表示连线的风格,’--‘表示虚线
#color表示连线的颜色
#marker表示标记点的形状
#markeredgecolor表示标记点的边缘颜色
#fillstyle=’none'表示标记点,颜色补填充
plt.plot(x, y1, marker='d', linestyle='--', color='r', markeredgecolor='r', fillstyle='none')
plt.plot(x, y2, marker='s', linestyle='--', color='b', markeredgecolor='b', fillstyle='none')
plt.show()

image.png

那么对上述代码略作修改

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y1 = [0.1, 0.3, 0.2, 0.2, 0.6, 0.8, 0.9, 0.52, 0.3, 0.7]
y2 = [k+0.2 for k in y1]

plt.plot(x, y1, marker='d', linestyle=':', color='r', markeredgecolor='y', fillstyle='full')
plt.plot(x, y2, marker='s', linestyle=':', color='b', markeredgecolor='y', fillstyle='full')
plt.show()

image.png

如果想对画的线打label,并且可视化,则需要plt.lengend()

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y1 = [0.1, 0.3, 0.2, 0.2, 0.6, 0.8, 0.9, 0.52, 0.3, 0.7]
y2 = [k+0.2 for k in y1]

plt.plot(x, y1, marker='d', linestyle=':', color='r', markeredgecolor='y', fillstyle='full', label='first')
plt.plot(x, y2, marker='s', linestyle=':', color='b', markeredgecolor='y', fillstyle='full', label='second')
plt.legend()
plt.show()

image.png

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y1 = [0.1, 0.3, 0.2, 0.2, 0.6, 0.8, 0.9, 0.52, 0.3, 0.7]
y2 = [k+0.2 for k in y1]

plt.plot(x, y1, marker='d', linestyle=':', color='r', markeredgecolor='y', fillstyle='full', label='first')
plt.plot(x, y2, marker='s', linestyle=':', color='b', markeredgecolor='y', fillstyle='full', label='second')
plt.legend(bbox_to_anchor=(0.98, -0.125), ncol=2)
plt.show()

image.png
通过plt.lengend()中的 bbox_to_anchor可以调整label在整幅上的位置。其中(x,y)表示(左右, 上下)坐标从左下开始(0,0),ncol表示label为几列

参考链接

https://matplotlib.org/3.1.0/gallery/lines_bars_and_markers/marker_fillstyle_reference.html
https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.pyplot.plot.html
https://matplotlib.org/3.1.0/api/_as_gen/matplotlib.pyplot.legend.html

标签: Python

非特殊说明,本博所有文章均为博主原创。

上一篇 医学图像处理及配准代码整理
下一篇 没有了

评论啦~