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

在PyCharm中用Python绘制正确长度频次条形图的方法

解决Python条形图统计长度频次问题

第一步:正确统计长度数据的频次

核心是先合并相同长度的实例并统计总数,否则直接绘图会出现每个实例单独成条的情况。推荐用collections.Counter实现,简单直观:

from collections import Counter
import matplotlib.pyplot as plt

# 示例长度数据数组
lengths = [2, 3, 2, 5, 3, 3, 4, 2, 5, 5]

# 统计各长度的出现频次
counts = Counter(lengths)
# 按长度从小到大排序,避免x轴顺序混乱
sorted_lengths = sorted(counts.keys())
sorted_counts = [counts[l] for l in sorted_lengths]

第二步:绘制符合预期的条形图

结合PyCharm深色主题的图像反转设置,调整颜色与布局,确保显示正常:

plt.figure(figsize=(8, 5))
# 选择明亮条形色适配深色反转显示
bars = plt.bar(sorted_lengths, sorted_counts, color='#4CAF50')

# 设置轴标签与标题
plt.xlabel('长度')
plt.ylabel('出现频次')
plt.title('长度数据频次分布')

# 给每个条形标注具体频次数值
for bar in bars:
    height = bar.get_height()
    plt.text(bar.get_x() + bar.get_width()/2., height,
             f'{height}',
             ha='center', va='bottom')

# 若y轴刻度异常,可手动指定范围
# plt.yticks(range(0, max(sorted_counts)+1))

plt.tight_layout()
plt.show()

常见问题排查

  • x轴未合并相同长度:直接用原始数组绘图导致,必须先通过Counter/value_counts等工具完成频次合并。
  • y轴刻度错误:若刻度显示不全或不符合预期,可通过plt.yticks()手动指定刻度范围,确保覆盖所有频次值。
  • 深色主题显示异常:优先选择明亮的条形颜色,也可通过plt.style.use('dark_background')手动适配深色主题,同时将文字颜色调整为浅色。

备选方案(Pandas实现)

适合处理更复杂的数据集:

import pandas as pd
import matplotlib.pyplot as plt

lengths = [2, 3, 2, 5, 3, 3, 4, 2, 5, 5]
df = pd.DataFrame({'length': lengths})
# 统计频次并按长度排序
count_df = df['length'].value_counts().sort_index()

count_df.plot(kind='bar', color='#2196F3', figsize=(8,5))
plt.xlabel('长度')
plt.ylabel('出现频次')
plt.title('长度数据频次分布')
plt.tight_layout()
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:08:21