Article Directory
Matplotlib drawing
Matplotlib Python is a 2D drawing library, by Matplotlib, developers can require only a few lines of code, can generate the drawing, histogram, power spectrum, bar, error, scatter and the like.
http://matplotlib.org
- Drawing Tools library for creating publication-quality graphs
- Purpose is to build a formula drawing Matlab interface Python
import matplotlib.pyplot as plt
- pyploy module contains common matplotlib API function
figure
- Matplotlib figure image object are located
- Create a figure:
fig = plt.figure()
Sample code:
# 引入matplotlib包
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline #在jupyter notebook 里需要使用这一句命令
# 创建figure对象
fig = plt.figure()
operation result:
<matplotlib.figure.Figure at 0x11a2dd7b8>
subplot
fig.add_subplot(a, b, c)
- a, b shows a fig divided into regions a * b
- c represents the currently selected area to be operated,
- Note: numbering from 1 (not 0)
- plot drawing area specified last position of subplot (jupyter notebook does not show up correctly)
Sample code:
# 指定切分区域的位置
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)
# 在subplot上作图
random_arr = np.random.randn(100)
#print random_arr
# 默认是在最后一次使用subplot的位置上作图,但是在jupyter notebook 里可能显示有误
plt.plot(random_arr)
# 可以指定在某个或多个subplot位置上作图
# ax1 = fig.plot(random_arr)
# ax2 = fig.plot(random_arr)
# ax3 = fig.plot(random_arr)
# 显示绘图结果
plt.show()
operation result:
Histogram: hist
Sample code:
import matplotlib.pyplot as plt
import numpy as np
plt.hist(np.random.randn(100), bins=10, color='b', alpha=0.3)
plt.show()
operation result:
Scatter: scatter
Sample code:
import matplotlib.pyplot as plt
import numpy as np
# 绘制散点图
x = np.arange(50)
y = x + 5 * np.random.rand(50)
plt.scatter(x, y)
plt.show()
operation result:
Histogram: bar
Sample code:
import matplotlib.pyplot as plt
import numpy as np
# 柱状图
x = np.arange(5)
y1, y2 = np.random.randint(1, 25, size=(2, 5))
width = 0.25
ax = plt.subplot(1,1,1)
ax.bar(x, y1, width, color='r')
ax.bar(x+width, y2, width, color='g')
ax.set_xticks(x+width)
ax.set_xticklabels(['a', 'b', 'c', 'd', 'e'])
plt.show()
operation result:
Drawing matrix: plt.imshow ()
- Confusion matrix, the relationship between the three dimensions of
Sample code:
import matplotlib.pyplot as plt
import numpy as np
# 矩阵绘图
m = np.random.rand(10,10)
print(m)
plt.imshow(m, interpolation='nearest', cmap=plt.cm.ocean)
plt.colorbar()
plt.show()
operation result:
[[ 0.92859942 0.84162134 0.37814667 0.46401549 0.93935737 0.0344159
0.56358375 0.75977745 0.87983192 0.22818774]
[ 0.88216959 0.43369207 0.1303902 0.98446182 0.59474031 0.04414217
0.86534444 0.34919228 0.53950028 0.89165269]
[ 0.52919761 0.87408715 0.097871 0.78348534 0.09354791 0.3186
0.25978432 0.48340623 0.1107699 0.14065592]
[ 0.90834516 0.42377475 0.73042695 0.51596826 0.14154431 0.22165693
0.64705882 0.78062873 0.55036304 0.40874584]
[ 0.98853697 0.46762114 0.69973423 0.7910757 0.63700306 0.68793919
0.28685306 0.3473426 0.17011744 0.18812329]
[ 0.73688943 0.58004874 0.03146167 0.08875797 0.32930191 0.87314734
0.50757536 0.8667078 0.8423364 0.99079049]
[ 0.37660356 0.63667774 0.78111565 0.25598593 0.38437628 0.95771051
0.01922366 0.37020219 0.51020305 0.05365718]
[ 0.87588452 0.56494761 0.67320078 0.46870376 0.66139913 0.55072149
0.51328222 0.64817353 0.198525 0.18105368]
[ 0.86038137 0.55914088 0.55240021 0.15260395 0.4681218 0.28863395
0.6614597 0.69015592 0.46583629 0.15086562]
[ 0.01373772 0.30514083 0.69804049 0.5014782 0.56855904 0.14889117
0.87596848 0.29757133 0.76062891 0.03678431]]
plt.subplots()
- And returns the newly created
figure
andsubplot
an array of objects - Generating two rows and two columns subplot:
fig, subplot_arr = plt.subplots(2,2)
- Properly in jupyter, the recommended way to use this to create multiple charts
Sample code:
import matplotlib.pyplot as plt
import numpy as np
fig, subplot_arr = plt.subplots(2,2)
# bins 为显示个数,一般小于等于数值个数
subplot_arr[1,0].hist(np.random.randn(100), bins=10, color='b', alpha=0.3)
plt.show()
operation result:
Color, markings, linear
- ax.plot(x, y, ‘r–’)
Equivalent to ax.plot (x, y, linestyle = '-', color = 'r')
Sample code:
import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots(2)
axes[0].plot(np.random.randint(0, 100, 50), 'ro--')
# 等价
axes[1].plot(np.random.randint(0, 100, 50), color='r', linestyle='dashed', marker='o')
operation result:
[<matplotlib.lines.Line2D at 0x11a901e80>]
- Common color, mark, linear
[Image dump the chain fails, the source station may have security chain mechanism, it is recommended to save the picture down uploaded directly (img-FDuqov6W-1579958619918) (... / images / plt_marker.png)]
[Image dump the chain fails, the source station may have security chain mechanism, it is recommended to save the picture down uploaded directly (img-lOwZ26gr-1579958619919) (... / images / plt_linestyle.png)]
Mark, label, legend
-
Set scale range
plt.xlim (), plt.ylim ()
ax.set_xlim(), ax.set_ylim()
-
Set the scale display
plt.xticks (), plt.yticks ()
ax.set_xticks(), ax.set_yticks()
-
Setting scale label
ax.set_xticklabels(), ax.set_yticklabels()
-
Set axis label
ax.set_xlabel(), ax.set_ylabel()
-
Set Title
ax.set_title()
-
legend
ax.plot(label=‘legend’)
ax.legend(), plt.legend()
loc = 'best': automatically selecting optimum placement positions Legend
Sample code:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(1)
ax.plot(np.random.randn(1000).cumsum(), label='line0')
# 设置刻度
#plt.xlim([0,500])
ax.set_xlim([0, 800])
# 设置显示的刻度
#plt.xticks([0,500])
ax.set_xticks(range(0,500,100))
# 设置刻度标签
ax.set_yticklabels(['Jan', 'Feb', 'Mar'])
# 设置坐标轴标签
ax.set_xlabel('Number')
ax.set_ylabel('Month')
# 设置标题
ax.set_title('Example')
# 图例
ax.plot(np.random.randn(1000).cumsum(), label='line1')
ax.plot(np.random.randn(1000).cumsum(), label='line2')
ax.legend()
ax.legend(loc='best')
#plt.legend()
operation result: <matplotlib.legend.Legend at 0x11a4061d0>