pythonpython-3.xmatplotlib

How to add a variable to Python plt.title?


I am trying to plot lots of diagrams, and for each diagram, I want to use a variable to label them. How can I add a variable to plt.title? For example:

import numpy as np
import matplotlib.pyplot as plt

plt.figure(1)
plt.ylabel('y')
plt.xlabel('x')

for t in xrange(50, 61):
    plt.title('f model: T=t')

    for i in xrange(4, 10):
        plt.plot(1.0 / i, i ** 2, 'ro')

    plt.legend
    plt.show()

In the argument of plt.title(), I want t to be variable changing with the loop.


Solution

  • You can change a value in a string by using %. Documentation can be found here.

    For example:

    num = 2
    print "1 + 1 = %i" % num # i represents an integer
    

    This will output:

    1 + 1 = 2

    You can also do this with floats and you can choose how many decimal place it will print:

    num = 2.000
    print "1.000 + 1.000 = %1.3f" % num # f represents a float
    

    gives:

    1.000 + 1.000 = 2.000

    Using this in your example to update t in the figure title:

    plt.figure(1)
    plt.ylabel('y')
    plt.xlabel('x')
    
    for t in xrange(50,61):
        plt.title('f model: T=%i' %t)
    
        for i in xrange(4,10):
            plt.plot(1.0/i,i**2,'ro')
    
        plt.legend
        plt.show()