当条形图遇上极坐标:径向与圆形条形图的视觉革命
1. 设计原理这两种图表把传统的笛卡尔坐标系换成极坐标系角度表示类别半径或角度长度表示数值。1.1. 径向条形图径向条形图本质上是将传统条形图的直角坐标系转换为极坐标系。在极坐标系中每个数据点不再由(x, y)定位而是由(角度, 半径)确定条形的高度或长度由半径值表示而条形的排列则沿着圆周方向。设计灵感如同钟表的指针或雷达的扫描线径向条形图借鉴了自然界和人工制品中常见的圆形布局利用了人类对角度和对称性的天然感知能力。1.2. 圆形条形图圆形条形图是径向条形图的一种特殊形式它固定了起点和终点使所有条形都在同一圆周上开始只在半径方向上延伸。这种设计解决了完全径向布局可能导致的数据比较困难问题因为所有条形的基准线是一致的。设计比喻想象一组跳高运动员他们都从同一高度起跳只是跳跃的高度不同——圆形条形图就是这样公平的竞技场。2. 应用示例下面通过示例来演示这两种图在实际场景中的应用。2.1. 径向条形图# --- 1. 构造测试数据 --- # 假设我们想比较一年中每个月的平均降水量 月份 [ 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月, ] # 生成模拟的降水量数据 (单位: mm) np.random.seed(42) # 为了结果可复现 降水量 np.random.uniform(30, 150, sizelen(月份)) # 随机生成30-150mm的数据 # --- 2. 创建图形 --- fig, (ax1, ax2) plt.subplots(1, 2, figsize(14, 7), facecolorwhite) # --- 2.1 绘制传统条形图 --- # ... 省略 ... # --- 2.2 绘制径向条形图 --- # 计算每个条形的角度位置 # ... 省略 ... # 使用极坐标子图 ax2 plt.subplot(122, projectionpolar) # 关键设置 bottom 参数为 inner_radius这样条形就从 inner_radius 开始画长度为 radii bars ax2.bar( theta, radii, width0.4, bottominner_radius, colorlightcoral, edgecolordarkred, alpha0.7, ) # 添加数值标签 (在条形内部靠近外侧) for angle, radius, month in zip(theta, radii, 月份): ax2.text( angle, inner_radius radius / 2, f{radius:.1f}, hacenter, vacenter, fontsize8, colorblack, ) # 添加月份标记 (在条形外部) # ... 省略 ... # --- 3. 显示图形 --- plt.tight_layout() plt.show()这段代码首先生成了模拟的月度降水量数据然后在同一个图形窗口中创建了两个子图。左侧是使用plt.bar创建的传统条形图右侧是使用plt.subplot(..., projectionpolar)和ax.bar创建的径向条形图。径向条形图利用了极坐标系将类别月份分布在圆周上将数值降水量映射到径向长度上。径向条形图是一种在极坐标系上绘制的图表可以提供比传统条形图更具视觉吸引力的替代方案。它通过弧长来表示数值并且可以有效地利用空间尤其是在处理类别较多或需要强调周期性模式例如按月份或季度分组的数据时。2.2. 圆形条形图from matplotlib import cm from math import log10 labels list(ABCDEFG) data [21, 57, 88, 14, 76, 91, 26] # ... 省略 ... #create colors along a chosen colormap colors [cm.terrain(i / n) for i in range(n)] #create figure, axis fig, ax plt.subplots() #create rings of donut chart for i in range(n): current_outer_radius r - i * w innerring, _ ax.pie([m - data[i], data[i]], radius current_outer_radius, startangle 90, colors [white, colors[i]]) # 添加标签 # ... 省略 ... plt.show()圆形条形图从同一基准线开始避免了径向条形图中不同角度起始点不同的问题更加便于比较。3. 总结径向条形图和圆形条形图代表了数据可视化从纯功能向功能美学平衡的演进。它们不是要完全取代传统条形图而是为我们提供了更多视觉叙事的工具。就像一位熟练的厨师拥有多种刀具一样优秀的数据分析师也应该掌握多种可视化技术根据数据特性和沟通目标选择最合适的刀
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2472808.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!