Python实现彩色散点图绘制(利用色带对散点图进行颜色渲染)

Python051

Python实现彩色散点图绘制(利用色带对散点图进行颜色渲染),第1张

接受自己的普通,然后全力以赴的出众,告诉自己要努力,但不要着急....

当然, 这个结果并不是我真正想要的,Pass, 太丑了!

好吧,安排,我们先看下实现后的效果!

这个效果自然就比之前的好多了!

实现python散点图绘制需要用到matplotlib库, matplotlib库是专门用于可视化绘图的工具库;学习一个新的库当然看官方文档了: https://www.osgeo.cn/matplotlib/contents.html

实现思路:

matplotlib.pyplot.scatter() 函数是专门绘制散点图的函数: https://www.osgeo.cn/matplotlib/api/_as_gen/matplotlib.pyplot.scatter.html?highlight=scatter#matplotlib.pyplot.scatter

matplotlib.pyplot.scatter ( x, y , s=None , c=None , marker=None , cmap=None , norm=None , vmin=None , vmax=None , alpha=None , linewidths=None , verts=None , edgecolors=None , ***, data=None , ** kwargs ) **

plt.scatter(observation, estimate, c=Z1, cmap=colormap, marker=".", s=marker_size, norm=colors.LogNorm(vmin=Z1.min(), vmax=0.5 * Z1.max()))

其中:

1、c参数为计算的散点密度

2、cmap为色带(matplotlib里面自带了很多色带可供选择),参见:

https://www.osgeo.cn/matplotlib/gallery/color/colormap_reference.html

3、由于计算的散点密度数值大小分散,因此利用norm参数对散点密度Z1进行归一化处理(归一化方式很多,参见colors类),并给归一化方式设置色带刻度的最大最小值vmin和vmax(一般这两个参数就是指定散点密度的最小值和最大值),这样就建立起了密度与色带的映射关系。

https://matplotlib.org/tutorials/colors/colormapnorms.html

(这里的结果与前面展示的相比改变了计算散点密度的半径:radius = 3以及绘制散点图的散点大小marksize)

作者能力水平有限,欢迎各位批评指正!

Python有一些自带的图形例子,在Python目录的Lib\turtledemo下面,通过下面的命令可以执行,forest和tree有点类似你想要的图形,可以参考一下。

pythonw -m turtledemo forest