当前位置: 首页 > 面试题库 >

如何更改matplotlib中的x轴,以确保没有空格?

洪浩波
2023-03-14
问题内容

因此,当前正在学习如何在matplotlib中导入数据并使用它,即使我从书中获得了确切的代码,也遇到了麻烦。

这是该图的样子,但是我的问题是,如何在x轴的起点和终点之间没有空白的情况下得到它。

这是代码:

import csv

from matplotlib import pyplot as plt
from datetime import datetime

# Get dates and high temperatures from file.
filename = 'sitka_weather_07-2014.csv'
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)

    #for index, column_header in enumerate(header_row):
        #print(index, column_header)
    dates, highs = [], []
    for row in reader:
        current_date = datetime.strptime(row[0], "%Y-%m-%d")
        dates.append(current_date)

        high = int(row[1])
        highs.append(high)

# Plot data. 
fig = plt.figure(dpi=128, figsize=(10,6))
plt.plot(dates, highs, c='red')


# Format plot.
plt.title("Daily high temperatures, July 2014", fontsize=24)
plt.xlabel('', fontsize=16)
fig.autofmt_xdate()
plt.ylabel("Temperature (F)", fontsize=16)
plt.tick_params(axis='both', which='major', labelsize=16)

plt.show()

问题答案:

在matplotlib 2.x中,在边缘设置了自动边距,以确保数据很好地适合于轴尖。在这种情况下,在y轴上可能需要这样的余量。默认情况下,将其设置为0.05以轴跨度为单位。要将边距设置为0x轴,请使用

plt.margins(x=0)

要么

ax.margins(x=0)

取决于上下文。另请参阅文档。

如果您想摆脱整个脚本中的空白,可以使用

plt.rcParams['axes.xmargin'] = 0

在脚本的开头(y当然也是一样)。如果要彻底摆脱空白,请永久更改matplotlib rc文件中的相应行:

axes.xmargin : 0
axes.ymargin : 0

除了更改页边距之外,还可以使用plt.xlim(..)ax.set_xlim(..)手动设置轴的限制,以确保没有空白。



 类似资料:
  • 我创建了一个图,它显示了一组数据和直方图。让我困扰的是,如下所示,直方图上的X轴有一个20步,因此最后一个值是140,而不是150,这严重触发了我的强迫症。有人能帮我修理它吗? 生成的png文件: https://i.stack.imgur.com/NhBYM.png 以及守则的有关部分: 非常感谢。

  • 问题内容: 我正在尝试在x轴上绘制日期图,在y轴上绘制值。它工作正常,但无法获得适当的X轴范围。尽管我的日期是今天,但x轴范围始终是2012年1月至2016年1月。我什至指定xlim应该是第一个和最后一个日期。 我正在为python-django写这个,如果相关的话。 问题答案: 从OP看到实际数据后,所有值都在同一日期/时间。因此matplotlib自动将x轴缩小。你仍然可以手动设置对象的x轴限

  • 问题内容: 如何控制pyplot图的轴设置。我干完了 我得到的就是我想要的 但我希望x轴位于0而不是底部。我该怎么做? 问题答案:

  • 我有以下熊猫数据帧: 使用Matplotlib绘制线图时,x轴(日期)都压在一起。如下所示: 你知道这是怎么做到的吗?我对此比较陌生,使用过的代码如下: 多谢

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

  • 我已经想出了如何用以下代码片段(数周,放在xAxis中的代码)更改下面的工作日标签(T、W、T等): 现有示例:https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/gantt/demo/resource-management