1. 使用plot()画散点图html

根据关于matplotlip.pyplot的官方文档:pyplot,其plot部分的解释plot()的做用是画出线条和线条上的标记:python

61bdc11a951c4b90a7a360e8fcc069b3-2.png

根据pyplot的官方教学文档:Pyplot tutorial,若是不改变其默认设置,画出的是蓝色的线条,即"b-":api

138161e1c80e48c5983637aae69e6d52-1.jpg

代码示例:数组

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0,10,1)

plt.plot(x,x+0)

plt.show()

画出的效果为一条蓝色的直线:dom

1790fb657f0d4a3682e7924178506086-1.jpg

plt.plot(x,x+0)

等价于 3d

plt.plot(x,x+0,'-')

而能够看到,[x, x+0]表示的是一个二维数组,每一维是从0到9这10个整数,或者说10个点。plot()的做用就是用某种方式将这10个点创建链接,不过其默认方式使用线条链接。现考虑若是是用点或圈而不是线条的方式将这10个点链接起来,画出的就是散点图。code

从pyplot能够查到,控制线条的种类的字符串能够为'--', '-.', ':', '.'等等:orm

21bdd193de8348ec8be230bbc4a7e49d-1.jpg

故如今考虑用'.'或'o'代替'-'链接这些点。htm

将'o'代替'-'的示例:blog

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0,10,1)

plt.plot(x,x+0,'o')

plt.show()

画出的效果是10个散点图:

fb8eb2a658274218922bf4a65e3c8976-1.jpg

用于画出随机点的示例:

import matplotlib.pyplot as plt

import numpy as np

def rand_data():

return np.random.uniform(low=0., high=1., size=(100,))

# Generate data.

x1, y1 = [rand_data() for i in range(2)]

plt.plot(x1,y1, 'o',color='b')

plt.show()

100个随机点的散点图效果:

03a87623564044ce9eabe3069098b8e0-2.png

2. 使用scatter()画散点图

根据官方文档:matplotlib.pyplot.scatter的定义,scatter()是用来画散点图的:

97b426893c084134ab2200a73f81ebff-1.jpg

和plot()相同,scatter()的做用也是将画出的点链接起来,不过其默认链接方式是'o',即点的方式:

24928d0ca73f4bb1a6288572b84cc331-2.png

示例:

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0,10,1)

plt.scatter(x,x+0)

plt.show()

plt.scatter(x,x+0)

效果和

plt.plot(x,x+0,'o')

的效果相同:

c6aa4df5dbd448bdb899e3f4873b60af-2.png

3. plot()和scatter()改变点的大小

plot()中改变点的大小的参数是markersize 或 ms:

8b7ed11e45d2446ca2060b0b944d0d2f-2.png

而scatter()中改变点的大小的参数是s:

0b1ac0e5e6734f8e813e798e8f9af1fa-1.jpg

示例:

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0,10,1)

plt.plot(x,x+0,'o',markersize=4.,color=(0.8,0.,0.))

plt.scatter(x,x+1,s=16.,color=(0.,0.5,0.))

plt.show()

效果:

f0da5bd2d3fa47d698924d1aa5237da7-2.png

能够看到,plot()的markersize设为4.0,和scatter()的s设为16.0,画出的点大小相同。

这里matplotlib.pyplot.scatter有解释, scatter()中参数s表示的大小,和plot()的markersize大小的平方相同,即[s]=markersize**2,下图参考:pyplot scatter plot marker size

a56c98867a4d4686b0ce31a22c887d4d-1.jpg

4. 加入图例(legend)后图例中点的大小和数量

参数markerscale是用于调整legend中点和实际图中画出的点的大小关系,若设markersize=1.0,则legend中的点的大小和图中画出的点大小相同;若设markersize=2.0,则legend中的点的大小是图中画出点的大小的2倍。

a3d47dcb61c447e6848343573c3854d4-2.png

而numpoints参数做用于调整用线条画出的点,即用plot()画出的点,legend中的点的数目,而scatterpoints参数做用于调整用散点图画出的点,即scatter()画出的点,legend中的点的数目:

579b3f03f90c44899414e6ca4079e5bd-1.jpg

markerscale,numpoints和scatterpoints3个参数默认值都为1。

下面加入图例,更改plot()画出的点在legend中点的数量为2,且legend中点的大小为原图的2倍:

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0,10,1)

#print(x)

plt.plot(x,x+0,'o',label='x+0',markersize=4.,color=(0.8,0.,0.))

plt.scatter(x,x+1,label='x+1',marker='o',s=16.0,color=(0.,0.5,0.))

plt.legend(loc="best",markerscale=2.,numpoints=2,scatterpoints=1,fontsize=12)

plt.show()

效果为:

517c763fb31e470da141258daa8fc2ac-2.png

更改scatterpoints大小也为2, 即scatter()画出的点在legend中显示数量为2:

import numpy as np

import matplotlib.pyplot as plt

x = np.arange(0,10,1)

#print(x)

plt.plot(x,x+0,'o',label='x+0',markersize=4.,color=(0.8,0.,0.))

plt.scatter(x,x+1,label='x+1',marker='o',s=16.0,color=(0.,0.5,0.))

plt.legend(loc="best",markerscale=2.,numpoints=2,scatterpoints=2,fontsize=12)

plt.show()

效果为:

217fba800b8d49a9b121378e75c3e678-2.png

其它参数未变。

Logo

鸿蒙生态一站式服务平台。

更多推荐