如何让Matplotlib绘制CSV列数据时Y轴按升序显示?
让Matplotlib图表Y轴按升序显示Postcode数值
原代码存在一个小问题:new_df未定义,应该替换为读取数据的df。要实现Y轴数值按升序标记显示,只需对Postcode值排序后设置为Y轴刻度即可,修正后的代码如下:
import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('PracTest5/addresses_h.txt') # 提取前8行的Postcode列(修正原代码的new_df错误) subset = df.loc[:7, "Postcode"] plt.plot(subset) plt.xlabel("Row Number") plt.ylabel("Postcode") plt.title("Postcode Data") # 对Postcode值升序排序,设置为Y轴刻度 sorted_postcodes = sorted(subset.unique()) plt.yticks(sorted_postcodes) plt.show()
关键改动说明:
- 修正了原代码中未定义的
new_df变量,替换为实际读取数据的df - 使用
sorted(subset.unique())获取前8行Postcode的唯一值并进行升序排序,再通过plt.yticks()将排序后的数值设置为Y轴的显示刻度,确保Y轴按升序标记 - 如果需要Y轴显示所有出现的Postcode值(包括重复项),可以将
sorted(subset.unique())替换为sorted(subset),但使用唯一值能让刻度更简洁清晰
内容的提问来源于stack exchange,提问作者Indura Wijeratne
相关产品推荐
相关产品推荐

