我有以下代码:
import matplotlib
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.ticker import MaxNLocator
import math
filename = "populations.txt"
data = np.loadtxt(filename, usecols = 0)
year = data
data = np.loadtxt(filename, usecols = 1)
hares = data
data = np.loadtxt(filename, usecols = 2)
lynxes = data
data = np.loadtxt(filename, usecols = 3)
carrots = data
fig, axes = plt.subplots(nrows=3, figsize=(10,6))
axes[0].plot(year,hares)
axes[0].set_ylim([0,80000])
axes[1].plot(year,lynxes)
axes[1].set_ylim([0,80000])
axes[2].plot(year,carrots)
axes[2].set_ylim([0,80000])
axes[0].xaxis.set_major_locator(MaxNLocator(integer=True))
人口。txt文件
# year hare lynx carrot
1900 30e3 4e3 48300
1901 47.2e3 6.1e3 48200
1902 70.2e3 9.8e3 41500
1903 77.4e3 35.2e3 38200
1904 36.3e3 59.4e3 40600
1905 20.6e3 41.7e3 39800
1906 18.1e3 19e3 38600
1907 21.4e3 13e3 42300
1908 22e3 8.3e3 44500
1909 25.4e3 9.1e3 42100
1910 27.1e3 7.4e3 46000
1911 40.3e3 8e3 46800
1912 57e3 12.3e3 43800
1913 76.6e3 19.5e3 40900
1914 52.3e3 45.7e3 39400
1915 19.5e3 51.1e3 39000
1916 11.2e3 29.7e3 36700
1917 7.6e3 15.8e3 41800
1918 14.6e3 9.7e3 43300
1919 16.2e3 10.1e3 41300
1920 24.7e3 8.6e3 47300
情节结果
如何强制x轴上的年份标签是从1900到1920的整数(相应地保存在“年份”数组中),以及为什么它们首先显示为浮点数?
我试图在axes[0]的情节中强行处理这件事,但这似乎只是引起了其他问题。我错过了什么?
理想情况下,我也希望不必将1900 - 1920硬编码为年份跨度,因为数据集可能会增长。我如何确保np.loadtxt()从一开始就将数据保存为整数,这样这个整数/浮点标记问题就永远不会出现?不幸的是,dtype=np.int没有改变任何事情。
谢啦!
由Johnc在评论中解决:
好吧,读取年份时同时执行dtype=np.int
和ax.set_xticks(范围(最小(年份),最大(年份)1,2)
或ax.set_xticks(范围(int(min(年份)), int(max(年份))1,2)
欢迎使用Stackoverflow。
如果手动指定输入,可以通过导入数学模块或仅使用范围来完成此操作。
import math
y_vals = range(math.floor(min(0)), math.ceil(max(80000))+1)
在设置y时钟时添加y VAL。我在那里添加了数学函数,以防处理其他不需要手动输入的值,我在过去引用过这个答案。您可以同样轻松地执行范围(080001),它将起作用。
那么它就是:
axes[0].set_yticks(y_vals)
对所有轴都这样做。
问题内容: 我正在使用matplotlib.pyplot模块绘制直方图,并且想知道如何强制y轴标签仅显示整数(例如0、1、2、3等)而不显示小数(例如0.,0.5) ,1,,1.5、2等)。 我正在查看指导说明,怀疑答案在matplotlib.pyplot.ylim周围,但是到目前为止,我只能找到设置最小和最大y轴值的东西。 问题答案: 如果你有y数据 您可以使用此数据的最大值和最小值来创建此范围
我正在使用matplotlib绘制直方图。pyplot模块,我想知道如何强制y轴标签只显示整数(例如0、1、2、3等),而不显示小数(例如0、0.5、1、1.5、2等)。 我在看指导说明,怀疑答案就在matplotlib附近。pyplot。但到目前为止,我只能找到设置最小和最大y轴值的东西。
谁能解释一下这最后一行吗?我需要最终确定两个顶点是否相连。
我有一个自定义的类,我将它添加到我的中并不断更新。这个类有一个overidden和一个。如何在中绘制的图形上绘制?我经常通过一个循环更新这个,就是它,但是我没有更改。我的自定义类是我的类的子类。 我的面板类
在C++中,我们可以强制函数内联。 这在C#中也是可能的吗?有时,当方法很小时,它会自动内联。但是在C#/.NET中强制内联函数是否可能?