Matplotlib学习一
学习莫烦python的读书笔记
plot线
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3)
y1 = 2 * x + 1
y2 = x ** 2
plt.figure(num=3, figsize=(8, 5), )
l1, = plt.plot(x, y1, label='linear line', linewidth=10, zorder=1)
l2, = plt.plot(x, y2, color='red', linewidth=2.0, linestyle='--', label='square line')
plt.xlim((1, 3))
plt.ylim((2, 6))
plt.xlabel('xlable')
plt.ylabel('ylable')
new_ticks = np.linspace(-5, 5, 10)
plt.xticks(new_ticks)
plt.yticks([-2, -1.8, -1, 1.22, 3], ['$A$', '$B\ B$', 'C', 'D', 'E'])
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))
plt.legend(loc='upper right')
plt.legend(handles=[l1, l2], labels=['up', 'down'], loc='best')
x0 = 1
y0 = 2 * x0 + 1
plt.plot([x0, x0], [0, y0], 'k--', linewidth=2.5)
plt.scatter([x0, ], [y0, ], s=50, color='b')
plt.annotate('$2x+1=%s$' % y0, xy=(x0, y0), xycoords='data',
xytext=(+30, -30),
textcoords='offset points', fontsize=16,
arrowprops=dict(arrowstyle='->', connectionstyle='arc3,rad=0.5'))
plt.text(-3.7, 3, r'$this\ is\ the\ text.\ \mu\ \sigma_i\ \alpha_t$',
fontdict={'size': 16, 'color': 'g'})
for label in ax.get_xticklabels() + ax.get_yticklabels():
label.set_fontsize(10)
label.set_bbox(dict(facecolor='white', edgecolor='None', alpha=0.7, zorder=2))
plt.show()
Scatter散点图
import numpy as np
import matplotlib.pyplot as plt
n = 1024
X = np.random.normal(0, 1, n)
Y = np.random.normal(0, 1, n)
T = np.arctan2(Y, X)
plt.scatter(X, Y, s=75, c=T, alpha=0.5)
plt.xlim(-2, 2)
plt.xticks(())
plt.ylim(-2, 2)
plt.yticks(())
plt.show()
Bar柱状图
import numpy as np
import matplotlib.pyplot as plt
n = 12
X = np.arange(12)
Y1 = (1 - X / float(n)) * np.random.uniform(0.5, 1, n)
Y2 = (1 - X / float(n)) * np.random.uniform(0.5, 1, n)
plt.bar(X, +Y1, facecolor='#FF69B4', edgecolor='white')
plt.bar(X, -Y2, facecolor='#20B2AA', edgecolor='white')
plt.xlim(-1, n)
plt.xticks(())
plt.ylim(-1.25, 1.25)
plt.yticks(())
for x,y in zip(X, Y1):
plt.text(x, y+0.05, '%.2f' % y, ha='center', va='bottom')
for x, y in zip(X, Y2):
plt.text(x, -y-0.05, '%.2f' % y, ha='center', va='top')
plt.show()