当前位置: 首页 > 知识库问答 >
问题:

如何强制Y轴在Matplotlib中只使用整数?[重复]

湛光明
2023-03-14

我正在使用matplotlib绘制直方图。pyplot模块,我想知道如何强制y轴标签只显示整数(例如0、1、2、3等),而不显示小数(例如0、0.5、1、1.5、2等)。

我在看指导说明,怀疑答案就在matplotlib附近。pyplot。但到目前为止,我只能找到设置最小和最大y轴值的东西。

def doMakeChart(item, x):
    if len(x)==1:
        return
    filename = "C:\Users\me\maxbyte3\charts\\"
    bins=logspace(0.1, 10, 100)
    plt.hist(x, bins=bins, facecolor='green', alpha=0.75)
    plt.gca().set_xscale("log")
    plt.xlabel('Size (Bytes)')
    plt.ylabel('Count')
    plt.suptitle(r'Normal Distribution for Set of Files')
    plt.title('Reference PUID: %s' % item)
    plt.grid(True)
    plt.savefig(filename + item + '.png')
    plt.clf()

共有3个答案

丁业
2023-03-14

这对我有用:

import matplotlib.pyplot as plt
plt.hist(...

# make the y ticks integers, not floats
yint = []
locs, labels = plt.yticks()
for each in locs:
    yint.append(int(each))
plt.yticks(yint)
鞠安民
2023-03-14

如果你有Y数据

y = [0., 0.5, 1., 1.5, 2., 2.5]

可以使用此数据的最大值和最小值创建此范围内的自然数列表。例如

import math
print range(math.floor(min(y)), math.ceil(max(y))+1)

产量

[0, 1, 2, 3]

然后,可以使用matplotlib设置y记号标记位置(和标签)。pyplot。yticks:

yint = range(min(y), math.ceil(max(y))+1)

matplotlib.pyplot.yticks(yint)
公羊俭
2023-03-14

还有一种方法

from matplotlib.ticker import MaxNLocator

ax = plt.figure().gca()
ax.yaxis.set_major_locator(MaxNLocator(integer=True))
 类似资料:
  • 问题内容: 我正在使用matplotlib.pyplot模块绘制直方图,并且想知道如何强制y轴标签仅显示整数(例如0、1、2、3等)而不显示小数(例如0.,0.5) ,1,,1.5、2等)。 我正在查看指导说明,怀疑答案在matplotlib.pyplot.ylim周围,但是到目前为止,我只能找到设置最小和最大y轴值的东西。 问题答案: 如果你有y数据 您可以使用此数据的最大值和最小值来创建此范围

  • 我正在尝试使用Matplotlib绘制一些数据。我的代码工作正常,但我的图形标题和y轴刻度的顶部值之间存在冲突。所以我的问题是,有人知道如何只从y轴上删除顶部值,同时保持绘图的其他所有内容不变吗? 我的代码 谢啦

  • 问题内容: 我希望在方形图上画线。 天秤和应该是相同的。 例如x的范围是0到10,在屏幕上是10厘米。y的范围也必须为0到10,并且也必须为10 cm。 即使我迷失了窗口大小,也必须保持正方形。 目前,我的图形与窗口大小一起缩放。 我该如何实现? 更新: 我尝试了以下操作,但没有成功。 问题答案: 您需要对api进行更深入的研究: set_aspect的文档

  • 我有以下代码: 人口。txt文件 情节结果 如何强制x轴上的年份标签是从1900到1920的整数(相应地保存在“年份”数组中),以及为什么它们首先显示为浮点数? 我试图在axes[0]的情节中强行处理这件事,但这似乎只是引起了其他问题。我错过了什么? 理想情况下,我也希望不必将1900 - 1920硬编码为年份跨度,因为数据集可能会增长。我如何确保np.loadtxt()从一开始就将数据保存为整数

  • 我正在尝试使用.js Chart 创建一个包含两个数据集的折线图,每个数据集都有自己的 Y 刻度/轴(一个在图形的左侧,一个在图形的右侧)。 这是我的代码( 但是,第二个轴不可见,第二个数据集仍然与第一个完全一样缩放(从0到100而不是从0到1)。我需要更改什么?

  • 问题内容: 是否有一种简单的方法可以将y轴标签放在图的右侧?我知道可以使用来对刻度标签进行此操作,但是我想知道是否也可以对轴标签进行此操作。 我想到的一个想法是使用 但是,在保留y轴的范围的同时,将所有标签(刻度和轴标签)放置在右侧并没有达到预期的效果。简而言之,我想要一种将所有y轴标签从左向右移动的方法。 问题答案: 看来您可以使用以下方法做到这一点: 请参阅此处的示例。