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

改变x或y轴上的滴答频率

戎元忠
2023-03-14

我正在尝试修复python如何绘制数据。说:

x = [0,5,9,10,15]
y = [0,1,2,3,4]

matplotlib.pyplot.plot(x,y)
matplotlib.pyplot.show()

x轴的刻度以5的间隔绘制。是否有方法使其显示1的间隔?

共有3个答案

夏侯楷
2023-03-14

我喜欢这个解决方案(来自Matplotlib绘图指南):

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

x = [0,5,9,10,15]
y = [0,1,2,3,4]

tick_spacing = 1

fig, ax = plt.subplots(1,1)
ax.plot(x,y)
ax.xaxis.set_major_locator(ticker.MultipleLocator(tick_spacing))
plt.show()

这个解决方案通过给< code>ticker指定的数字来明确控制tick间距。multiple locator(),允许自动确定限制,并且便于以后阅读。

牟嘉
2023-03-14

另一种方法是设置轴定位器:

import matplotlib.ticker as plticker

loc = plticker.MultipleLocator(base=1.0) # this locator puts ticks at regular intervals
ax.xaxis.set_major_locator(loc)

根据您的需要,有几种不同类型的定位器。

下面是一个完整的示例:

import matplotlib.pyplot as plt
import matplotlib.ticker as plticker

x = [0,5,9,10,15]
y = [0,1,2,3,4]
fig, ax = plt.subplots()
ax.plot(x,y)
loc = plticker.MultipleLocator(base=1.0) # this locator puts ticks at regular intervals
ax.xaxis.set_major_locator(loc)
plt.show()
益锦程
2023-03-14

您可以使用< code>plt.xticks显式设置要在何处进行刻度线:

plt.xticks(np.arange(min(x), max(x)+1, 1.0))

举个例子,

import numpy as np
import matplotlib.pyplot as plt

x = [0,5,9,10,15]
y = [0,1,2,3,4]
plt.plot(x,y)
plt.xticks(np.arange(min(x), max(x)+1, 1.0))
plt.show()

(< code>np.arange被用来代替Python的< code>range函数,以防< code>min(x)和< code>max(x)是浮点数而不是整数。)

plt.plot(或斧头图)函数将自动设置默认的 xy 限制。如果您希望保留这些限制,并且只是更改刻度线的步长,那么您可以使用ax.get_xlim()来发现Matplotlib已经设置的限制。

start, end = ax.get_xlim()
ax.xaxis.set_ticks(np.arange(start, end, stepsize))

默认的刻度格式化程序应该做得很好,将刻度值舍入到一个合理的有效数字。但是,如果您希望对格式进行更多控制,则可以定义自己的格式化程序。例如

ax.xaxis.set_major_formatter(ticker.FormatStrFormatter('%0.1f'))

这是一个可运行的示例:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker

x = [0,5,9,10,15]
y = [0,1,2,3,4]
fig, ax = plt.subplots()
ax.plot(x,y)
start, end = ax.get_xlim()
ax.xaxis.set_ticks(np.arange(start, end, 0.712123))
ax.xaxis.set_major_formatter(ticker.FormatStrFormatter('%0.1f'))
plt.show()
 类似资料:
  • 我正在尝试修复python如何绘制数据。 说 和 然后我会做: x轴的刻度以5为间隔绘制。有没有办法让它显示1的间隔?

  • 我正在尝试修复python如何绘制数据。 说 和 然后我会做: x轴的刻度以5的间隔绘制。有没有办法让它显示1的间隔?

  • 问题内容: 我正在尝试修复python如何绘制数据。 说 和 然后我会做: 并且x轴的刻度线以5的间隔绘制。是否有办法使其显示1的间隔? 问题答案: 你可以使用以下命令显式设置要在刻度线打勾的位置: 例如, (以防万一,使用它而不是Python的range函数,它们是浮点数而不是整数。) 的(或)功能将自动设置默认x和y限制。如果你希望保留这些限制,而只是更改刻度线的步长,则可以用来发现已设置的限

  • 在下面的代码中,我希望减小y轴和x轴值的字体大小。我搜索并找到了以下代码: 假设您想减少数轴的字体大小,请使用以下代码: 假设要减小CategoryAxis的字体大小,请使用以下代码: 但不幸的是,轴的大小并没有减小。我做错什么了吗? 此示例代码:

  • Highcharts 区域图 以下实例演示了反转x轴与y轴区域图。 我们在前面的章节已经了解了 Highcharts 基本配置语法。接下来让我们来看下其他的配置。在 chart 中添加 inverted 属性。 chart 配置 将 chart 的 inverted 属性设置为 true,X轴为垂直,Y轴为水平的。 var chart = { type: 'area', invert

  • 本文向大家介绍请快速答出此题的答案并解释:var x, y = 1; x + y = ?相关面试题,主要包含被问及请快速答出此题的答案并解释:var x, y = 1; x + y = ?时的应答技巧和注意事项,需要的朋友参考一下 @t532 第一条规则 >若任何一侧是 string 或 object 则两边转换为 string 进行连接 关于object不是准确的。 举例: 按照ES标准规则,h