Matplotlib pyplot折线图不显示?散点图可正常绘制的问题求助
问题分析与解决
- 你看不到折线图的核心原因:
plt.plot()画折线时需要一组连续的坐标点,而你的代码每次循环只传入单个数值f和final,单个点无法形成折线,所以图表空白。散点图用'o'参数是绘制独立标记点,单个点就能显示,所以散点图正常。 - 你的代码还有两个冗余问题:
- 把
quanta函数定义嵌套在循环里,每次循环都重新定义一次,完全没必要 - 嵌套循环逐个处理
Freq里的每个值,numpy支持向量运算,根本不用这么做
- 把
修正后的代码
import matplotlib.pyplot as plt import numpy as np Temp = np.array([6, 7, 8]) Freq = np.arange(1, 10, 0.1) # 遍历每个温度,一次绘制完整折线 for T in Temp: final = Freq * T # numpy广播直接计算整个数组,不用循环单个f plt.plot(Freq, final, label=f'T={T}') # 加标签区分不同曲线 plt.legend() # 显示图例 plt.xlabel('Frequency') plt.ylabel('Quanta') plt.show()
额外说明
- 用numpy的广播特性直接对数组做运算,比嵌套循环效率高得多
- 加上
label和plt.legend()可以区分不同温度对应的曲线,更直观
内容的提问来源于stack exchange,提问作者Bholu
相关产品推荐
相关产品推荐

