当前位置 : 主页 > 编程语言 > java >

极坐标系在数据可视化中的巧妙运用

来源:互联网 收集:自由互联 发布时间:2022-06-23
常规的柱状图,散点图等展示形式,都是在笛卡尔坐标系中进行展示,是使用最为广泛的图表。这些图表在展示信息方面具有扎实的基础,但是却缺乏了一丝创意。 通过极坐标转换,可


常规的柱状图,散点图等展示形式,都是在笛卡尔坐标系中进行展示,是使用最为广泛的图表。这些图表在展示信息方面具有扎实的基础,但是却缺乏了一丝创意。

通过极坐标转换,可以将普通的图表变的更加的具有创意,比如以下图表,展示了各个国家的制造指数

极坐标系在数据可视化中的巧妙运用_数据分析

这样的图表形式有一个好听的名字,叫做南丁格尔玫瑰图,其本质就是极坐标系中的柱状图。

在matplotlib中,可以轻松的使用极坐标绘图,基本用法如下

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> r = np.arange(0, 2, 0.01)
>>> theta = 2 * np.pi * r
>>> ax = plt.subplot(111, projection='polar')
>>> ax.plot(theta, r)
>>> ax.set_rticks([0.5, 1, 1.5, 2])
>>> plt.show()

将projection参数的值设置为polar,表示该axes将采用极坐标系,接下来只需要指定极坐标系中的点的坐标即可,输出结果如下

极坐标系在数据可视化中的巧妙运用_柱状图_02

在matplotlib的极坐标系中,确定点的坐标需要两个值,第一个值是点的弧度值,第二个是半径,简单理解,弧度看做是笛卡尔坐标系中的x轴坐标,半径看做是笛卡尔坐标系中的y轴坐标。

理解了极坐标中的点的位置,就可以轻松绘制柱状图了,代码如下

>>> vals = [123, 124, 102, 111, 100, 121, 96, 107, 111, 116, 101, 83, 91, 123, 109, 130, 125, 87, 91, 99, 115, 109, 123, 111]
>>> theta = np.linspace(0, 2 * np.pi, len(vals))
>>> ax = plt.subplot(111, projection='polar')
>>> ax.bar(theta, vals, width = 2 * np.pi / len(vals))
>>> ax.tick_params(labelleft=False)
>>> plt.show()

输出结果如下

极坐标系在数据可视化中的巧妙运用_数据分析_03


搞清楚极坐标系中的点的坐标,就可以快速的创建南丁格尔玫瑰图。在matplotlib中,还可以对极坐标系的范围进行设置,只选择其中部分区域来画。

第一个例子,选择弧度,代码如下

>>> vals = [123, 124, 102, 111, 100, 121, 96, 107, 111, 116, 101, 83, 91, 123, 109, 130, 125, 87, 91, 99, 115, 109, 123, 111]
>>> theta = np.linspace(0, 2 * np.pi, len(vals))
>>> ax = plt.subplot(111, projection='polar')
>>> ax.bar(theta, vals, width = 2 * np.pi / len(vals))
>>> ax.tick_params(labelleft=False)
>>> ax.set_thetamin(45)
>>> ax.set_thetamax(135)
>>> plt.show()

输出结果如下


极坐标系在数据可视化中的巧妙运用_公众号_04

第二个例子,设置半径的范围,代码如下

>>> vals = [123, 124, 102, 111, 100, 121, 96, 107, 111, 116, 101, 83, 91, 123, 109, 130, 125, 87, 91, 99, 115, 109, 123, 111]
>>> theta = np.linspace(0, 2 * np.pi, len(vals))
>>> ax = plt.subplot(111, projection='polar')
>>> ax.bar(theta, vals, width = 2 * np.pi / len(vals))
>>> ax.tick_params(labelleft=False)
ax.set_rorigin(-20)
>>> plt.show()

输出结果如下


极坐标系在数据可视化中的巧妙运用_柱状图_05

通过灵活的运用极坐标系,可以极大的丰富我们的图表展现形式,创建更具感染力的图表。

·end·


极坐标系在数据可视化中的巧妙运用_柱状图_06

一个只分享干货的

生信公众号



上一篇:在图中添加多边形
下一篇:没有了
网友评论