How to fix the screen size for a matplotlib plot

Question:

I am trying to plot a tangent function (see below) and am trying to stop the plot ‘jumping around’:

import numpy as np
import matplotlib.pyplot as plt

lowerBound = 0

plt.ion()

while True:
    x = np.arange(lowerBound, lowerBound + 50, 0.1)
    y = np.tan(x / 2)

    plt.cla()
    plt.plot(x, y)
    plt.pause(0.01)

    lowerBound += 1

I tried

plt.figure(figsize=(5, 4))

and

fig = plt.figure()
fig.set_figheight(4)

but they just made the plot smaller, instead of fixing the height.

I was thinking I could do:

set y to maximum of -200 and y and set y to minimum of 200 and y,
but I don’t know how to get the min/max for all items in an array.

Asked By: sbottingota

||

Answers:

To stop the plot from "jumping around" as you describe, you can use the ylim method to set the limits of the y-axis in your plot. This will prevent the y-axis from adjusting automatically as the data changes, which will help prevent the plot from "jumping around".

Here is an example of how you can use the ylim method to set the y-axis limits in your plot:

import numpy as np
import matplotlib.pyplot as plt

lowerBound = 0

plt.ion()

while True:
    x = np.arange(lowerBound, lowerBound + 50, 0.1)
    y = np.tan(x / 2)

    # Set the y-axis limits to [-200, 200]
    plt.ylim(-200, 200)

    plt.cla()
    plt.plot(x, y)
    plt.pause(0.01)

    lowerBound += 1

In this example, the ylim method is called before the plot method to set the y-axis limits to [-200, 200]. This will prevent the y-axis from adjusting automatically as the data changes, which will help prevent the plot from "jumping around".

Alternatively, if you want to use the min and max functions to set the y-axis limits based on the minimum and maximum values in the y array, you can use the min and max functions like this:

import numpy as np
import matplotlib.pyplot as plt

lowerBound = 0

plt.ion()

while True:
    x = np.arange(lowerBound, lowerBound + 50, 0.1)
    y = np.tan(x / 2)

    # Set the y-axis limits to the minimum and maximum values in the y array
    plt.ylim(min(y), max(y))

    plt.cla()
    plt.plot(x, y)
    plt.pause(0.01)

    lowerBound += 1

In this example, the ylim method is called before the plot method to set the y-axis limits to the minimum and maximum values in the y array. This will prevent the y-axis from adjusting automatically as the data changes, which will help prevent the plot from "jumping around".

You can adjust the y-axis limits to suit your specific requirements and preferences. By setting the y-axis limits, you can control the appearance of your plot and prevent it from "jumping around" as the data changes.

Answered By: 8bitIcon
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.