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

Matplotlib如何在[0,1[区间绘制指定函数的10柱直方图

代码错误点
  • 目标绘图区间是[0,1),但原代码x取值为0-9的整数,完全超出区间范围
  • np.arange(0,0.99)默认步长为1,实际仅会生成[0]单个元素,和需要的10个柱位不匹配
  • axe.plot()返回的是线对象列表,不是数值数组,无法直接作为柱状图的高度参数传入
  • 多余的reshape操作将一维数组转为二维(1,10)结构,会触发维度不匹配的报错
正确实现代码
import matplotlib.pyplot as plt
import numpy as np

# 10根柱均分[0,1)区间,单根柱宽度为0.1
bar_width = 1 / 10
# 取每根柱的中点作为x坐标,共10个点,范围0.05~0.95
x = np.arange(bar_width / 2, 1, bar_width)
# 按给定函数计算每根柱对应的高度
y = np.power(x, 3) - np.power(x, 2) + 1/10
# x轴刻度标签
labels = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten']

plt.bar(x, y, width=bar_width)
plt.xticks(x, labels)
plt.title("y = x³ - x² + 0.1 (interval [0,1))")
plt.show()

如果需要柱子完全贴齐[0,1)区间边界,可将x替换为区间左端点数组np.arange(0, 1, bar_width),此时柱子会从0、0.1、0.2…0.9位置起始排列,刚好占满整个区间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:06:24