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

如何在Matplotlib中绘制带标记点的实线直方图拟合曲线?

问题解决:绘制带标记点的实线拟合线

我正在为课程绘制直方图,核心配置已完成,但没法复现一种带标记点的实线样式(近似实线与点线的结合)。我的直方图相关代码如下:

n,bins,patches = ax[0,0].hist(Data1,bins=100,density=True)
    x = np.arange(bins[0],bins[len(bins)-1],0.25)
    y = [normalProbabilityDensity(val,mu=xmu,sigma=xsigma) for val in x]

    ax[0,0].axis([600, 1000, 0.000, 0.010])
    ax[0,0].yaxis.set_ticks([0.000, 0.002, 0.004, 0.006, 0.008, 0.010])        
    ax[0,0].set_ylabel('Relative Frequency', fontsize = 10)
    ax[0,0].plot(x,y,label="norm prob density", linestyle="dashed")
    ax[0,0].legend(loc='upper left', fontsize="8")
    ax[0,0].grid(True)

需要将拟合线调整为下图所示样式:
带标记点的实线拟合线


解决方案

直接在plot()函数中同时指定线条样式和标记点参数即可实现需求:

修改原代码中的plot行,替换为:

ax[0,0].plot(x,y,label="norm prob density", linestyle="solid", marker="o", markersize=3, markevery=5)

参数说明:

  • linestyle="solid":将线条设置为实线
  • marker="o":使用圆形标记点
  • markersize=3:缩小标记点尺寸,避免遮挡线条
  • markevery=5:控制标记点间隔,每隔5个数据点绘制一个,防止点过于密集

如果想要更贴近示例图的空心标记效果,可以额外添加markerfacecolor参数:

ax[0,0].plot(x,y,label="norm prob density", linestyle="solid", marker="o", markersize=3, markevery=5, color="black", markerfacecolor="white")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:47:40