我在python中有这段代码,它的坐标y不变,plt.yticks指令不变,有帮助吗?
import matplotlib.pyplot as plt
year = [1927, 1934, 1947, 1957, 1965, 1977, 1987, 1997]
population = [2968540, 3213174, 4816185, 6536109, 8261527, 12497000,16635199,19184543]
plt.plot(year,population,color="red")
plt.title("Iraq Population 1927-1997")
plt.xlabel('Year')
plt.ylabel("Population")
plt.yticks([0, 4, 8, 12, 16, 20], ["0m", "4m", "8m", "12m", "16m", "20m"])
plt.grid()
plt.show()
答案 0 :(得分:2)
您在y轴上有数以百万计的人,但想要在0, 4, 8, 12, 16
和20
处打勾。
我建议尝试
plt.yticks([0e6, 4e6, 8e6, 12e6, 16e6, 20e6], ["0m", "4m", "8m", "12m", "16m", "20m"])
答案 1 :(得分:1)
这是matplotlib.ticker.EngFormatter
的典型用例。
import matplotlib.pyplot as plt
from matplotlib.ticker import EngFormatter
year = [1927, 1934, 1947, 1957, 1965, 1977, 1987, 1997]
population = [2968540, 3213174, 4816185, 6536109, 8261527, 12497000,16635199,19184543]
plt.plot(year,population,color="red")
plt.title("Iraq Population 1927-1997")
plt.xlabel('Year')
plt.ylabel("Population")
plt.gca().yaxis.set_major_formatter(EngFormatter())
plt.grid()
plt.show()
请注意,EngFormatter使用大写M表示百万,因为这是SI system中的标准。