[Data Analysis] Matplotlib drawing study notes day22 + figure + subplot + histogram hist + scatter + scatterplot matrix plot histogram bar + plt.imshow () + colors, marker, a linear scale, standard

Matplotlib drawing

[Image dump the chain fails, the source station may have security chain mechanism, it is recommended to save the picture down uploaded directly (img-8R4VhAfc-1579958619913) (../ images / matplotlib_logo.svg)]

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

[Image dump the chain fails, the source station may have security chain mechanism, it is recommended to save the picture down uploaded directly (img-9UveQQhx-1579958619915) (../ images / matplotlib.png)]

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:

[Image dump the chain fails, the source station may have security chain mechanism, it is recommended to save the picture down uploaded directly (img-Wzb00drY-1579958619915) (../ images / plt_01.png)]

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:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-opsOvTTC-1579958619915)(../images/plt_02.png)]

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: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I2NL6406-1579958619916)(../images/plt_03.png)]

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:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-01ONSRdO-1579958619916)(../images/plt_04.png)]

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]]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0pj8iSKr-1579958619917)(../images/plt_05.png)]

plt.subplots()

  • And returns the newly created figureand subplotan 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: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nibh50Jd-1579958619917)(../images/plt_06.png)]

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>]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pSdY7eEO-1579958619918)(../images/plt_07.png)]

  • Common color, mark, linear
    在这里插入图片描述
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dodBb6Ge-1579958619918)(../images/plt_color.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-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> [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gn7bpPox-1579958619919)(../images/plt_08.png)]

He published 192 original articles · won praise 56 · views 10000 +

Guess you like

Origin blog.csdn.net/qq_35456045/article/details/104084895