python |
您所在的位置:网站首页 › 画一只红莲哥斯拉的方法慢点画 › python |
1. 使用plot()画散点图 根据关于matplotlip.pyplot的官方文档:pyplot,其plot部分的解释plot()的作用是画出线条和线条上的标记: 根据pyplot的官方教学文档:Pyplot tutorial,如果不改变其默认设置,画出的是蓝色的线条,即"b-": 代码示例: import numpy as np import matplotlib.pyplot as plt x = np.arange(0,10,1) plt.plot(x,x+0) plt.show()画出的效果为一条蓝色的直线:
等价于 plt.plot(x,x+0,'-')而可以看到,[x, x+0]表示的是一个二维数组,每一维是从0到9这10个整数,或者说10个点。plot()的作用就是用某种方式将这10个点建立连接,不过其默认方式使用线条连接。现考虑如果是用点或圈而不是线条的方式将这10个点连接起来,画出的就是散点图。 从pyplot可以查到,控制线条的种类的字符串可以为'--', '-.', ':', '.'等等: 故现在考虑用'.'或'o'代替'-'连接这些点。 将'o'代替'-'的示例: import numpy as np import matplotlib.pyplot as plt x = np.arange(0,10,1) plt.plot(x,x+0,'o') plt.show()画出的效果是10个散点图:
用于画出随机点的示例: 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个随机点的散点图效果:
2. 使用scatter()画散点图 根据官方文档:matplotlib.pyplot.scatter的定义,scatter()是用来画散点图的: 和plot()相同,scatter()的作用也是将画出的点连接起来,不过其默认连接方式是'o',即点的方式:
示例: 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')的效果相同: 3. plot()和scatter()改变点的大小 plot()中改变点的大小的参数是markersize 或 ms:
而scatter()中改变点的大小的参数是s:
示例: 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()效果:
可以看到,plot()的markersize设为4.0,和scatter()的s设为16.0,画出的点大小相同。 这里matplotlib.pyplot.scatter有解释, scatter()中参数s表示的大小,和plot()的markersize大小的平方相同,即[s]=markersize**2,下图参考:pyplot scatter plot marker size 4. 加入图例(legend)后图例中点的大小和数量 加入图例(legend)后,根据官方参考文档:matplotlib.pyplot.legend 参数markerscale是用于调整legend中点和实际图中画出的点的大小关系,若设markersize=1.0,则legend中的点的大小和图中画出的点大小相同;若设markersize=2.0,则legend中的点的大小是图中画出点的大小的2倍。 而numpoints参数作用于调整用线条画出的点,即用plot()画出的点,legend中的点的数目,而scatterpoints参数作用于调整用散点图画出的点,即scatter()画出的点,legend中的点的数目:
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()效果为:
更改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()效果为:
其它参数未变。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |