使用python的绘图包matplotlib绘制如下的一张数据图
首先是导入包
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm as cm
其中,matplotlib包是用来绘图的,而numpy包则是准备数据的。
# 基本数据
x = np.linspace(0.5, 3.5, 100)
y = np.sin(x)
y1 = np.random.randn(100)
0x00 先绘制点图
plt.scatter(x, y1, c='0.25', label='scatter figure')
得到如下效果:
0x01 绘制线图
plt.plot(x, y, ls='--', lw=2, label='plot figure')
得到如下效果:
0x02 轴框设置
通过设置,只保留左边和右边的轴。
for spine in plt.gca().spines.keys():
if spine == 'top' or spine == 'right':
plt.gca().spines[spine].set_color('none')
plt.gca().xaxis.set_ticks_position('bottom')
plt.gca().yaxis.set_ticks_position('left')
效果如下:
0x03 设置x轴和y轴的区间
plt.xlim(0.0, 4.0)
plt.ylim(-3.0, 3.0)
0x04 设置x轴和y轴的标签
plt.xlabel('x_axis')
plt.ylabel('y_axis')
0x05 设置网格、轴线和覆盖区域
plt.grid(True, ls=':', c='r')
plt.axhline(y=0.0, c='r', ls='--', lw=2)
plt.axvspan(xmin=1.0, xmax=2.0, facecolor='y', alpha=.3)
0x06 设置注释、标题和说明
plt.annotate('maximum',
xy=(np.pi/2, 1.0),
xytext=((np.pi/2)+0.15, 1.5),
weight='bold',
color='r',
arrowprops=dict(arrowstyle='->', connectionstyle='arc3', color='r'))
plt.annotate('spines',
xy=(0.75, -3),
xytext=(0.35, -2.25),
weight='bold',
color='b',
arrowprops=dict(arrowstyle='->', connectionstyle='arc3', color='b'))
plt.annotate('',
xy=(0, -2.78),
xytext=(0.4, -2.32),
arrowprops=dict(arrowstyle='->', connectionstyle='arc3', color='b'))
plt.annotate('',
xy=(3.5, -2.98),
xytext=(3.6, -2.70),
arrowprops=dict(arrowstyle='->', connectionstyle='arc3', color='b'))
plt.text(3.6, -2.70, "'|' is tickline", weight='bold', color='b')
plt.text(3.6, -2.95, "3.5 is ticklabel", weight='bold', color='b')
plt.title('structure of matplotlib')
plt.legend(loc='upper right')
完成。
网友评论