You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用geom_bar绘制GDP条形图:仅展示Top3、Bottom3并标记中间国家

嘿,这个需求我之前帮朋友处理过,其实核心逻辑很清晰,不管你用Python的可视化库还是Excel,都能搞定。我拿最常用的Matplotlib+Pandas组合来给你详细说下步骤,好上手得很:

核心实现方案

1. 先把数据处理好:挑出Top3、Bottom3,加占位符

首先得把你的GDP数据按数值排序,把最高的3个和最低的3个拎出来,中间插一行占位(比如国家名写...),这样绘图的时候x轴就会是「Top3国家 + ... + Bottom3国家」的结构。

给你写段Python代码示例,你可以直接替换成自己的真实数据:

import pandas as pd

# 替换成你的真实数据
df = pd.DataFrame({
    'Country': ['USA', 'China', 'Japan', 'Germany', 'India', 'UK', 'France'],
    'GDP': [26.9, 19.4, 4.2, 4.0, 3.7, 3.1, 2.9]
})

# 按GDP从高到低排序
df_sorted = df.sort_values(by='GDP', ascending=False)

# 提取Top3和Bottom3
top3 = df_sorted.head(3)
bottom3 = df_sorted.tail(3)

# 插入中间占位行,GDP设为NaN(避免画出无效条形)
placeholder = pd.DataFrame({'Country': ['...'], 'GDP': [None]})

# 合并成最终要绘图的数据
plot_data = pd.concat([top3, placeholder, bottom3]).reset_index(drop=True)

2. 绘图:画出条形,给占位位置加省略号标识

用Matplotlib绘图时,占位行的GDP是NaN,所以不会画出条形,这时候我们在那个位置手动加个省略号(或者圆点)就可以了:

import matplotlib.pyplot as plt

plt.figure(figsize=(10,6))

# 绘制条形图
bars = plt.bar(plot_data['Country'], plot_data['GDP'], color='skyblue')

# 找到占位符的位置,添加省略号标识
placeholder_pos = plot_data[plot_data['Country'] == '...'].index[0]
# 用大字号的⋮或者直接写"..."都可以,位置放在条形图中间高度就行
plt.text(placeholder_pos, plot_data['GDP'].max()*0.5, '⋮', fontsize=30, ha='center', va='center')

# 给条形加数值标签(可选,让数据更直观)
for bar in bars:
    height = bar.get_height()
    if not pd.isna(height):
        plt.text(bar.get_x() + bar.get_width()/2, height,
                 f'{height:.1f}', ha='center', va='bottom')

# 美化一下图表
plt.title('Top 3 & Bottom 3 Countries by GDP', fontsize=14)
plt.xlabel('Country', fontsize=12)
plt.ylabel('GDP (Trillion USD)', fontsize=12)
plt.tight_layout()
plt.show()

3. 如果用Excel怎么操作?

要是你习惯用Excel,步骤也简单:

  • 先把数据按GDP降序排序,手动复制Top3和Bottom3到新表格,中间插一行写...
  • 选中新表格的数据插入条形图,找到...对应的条形,把它的填充色和边框都设为「无」
  • 插入文本框,输入⋮或者...,拖到那个空白位置就行

这样画出来的图就会清晰展示头部和尾部的国家,中间用省略号暗示还有其他国家,完美符合你的需求~

内容的提问来源于stack exchange,提问作者Barry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:00:14