Matplotlib.pyplot.table() function in Python - GeeksforGeeks

10 Oct, 2021
Matplotlib.pyplot.table() is a subpart of matplotlib library in which a table is generated using the plotted graph for analysis. This method makes analysis easier and more efficient as tables give a precise detail than graphs. The matplotlib.pyplot.table creates tables that often hang beneath stacked bar charts to provide readers insight into the data generated by the above graph.
Syntax: matplotlib.pyplot.table(cellText=None, cellColours=None, cellLoc=’right’, colWidths=None,rowLabels=None, rowColours=None, rowLoc=’left’, colLabels=None, colColours=None, colLoc=’center’, loc=’bottom’, bbox=None, edges=’closed’, **kwargs)  
Example 1: Consider a graph analyzing the increase in price of crops in months. The following code is for a non linear graph.
Python3
# importing necessary packagessimport numpy as npimport matplotlib.pyplot as plt  # input data valuesdata = [[322862, 876296, 45261, 782372,  32451],        [58230, 113139,  78045,  99308, 516044],        [89135,  8552, 15258, 497981, 603535],        [24415,  73858, 150656, 19323,  69638],        [139361, 831509, 43164, 7380,  52269]] # preparing values for graphcolumns = ('Soya', 'Rice', 'Wheat', 'Bakri', 'Ragi')rows = ['%d months' % x for x in (50, 35, 20, 10, 5)]values = np.arange(0, 2500, 500)value_increment = 1000 # Adding pastel shades to graphcolors = plt.cm.Oranges(np.linspace(22, 3, 12))n_rows = len(data)index = np.arange(len(columns)) + 0.3bar_width = 0.4 # Initialing vertical-offset for the graph.y_offset = np.zeros(len(columns)) # Plot bars and create text labels for the tablecell_text = [] for row in range(n_rows):    plt.plot(index, data[row], bar_width, color=colors[row])    y_offset = y_offset + data[row]    cell_text.append(['%1.1f' % (x / 1000.0) for x in y_offset]) # Reverse colors and text labels to display table contents with# color.colors = colors[::-1]cell_text.reverse() # Add a table at the bottomthe_table = plt.table(cellText=cell_text,                      rowLabels=rows,                      rowColours=colors,                      colLabels=columns,                      loc='bottom') # make space for the table:plt.subplots_adjust(left=0.2, bottom=0.2)plt.ylabel("Price in Rs.{0}'s".format(value_increment))plt.yticks(values * value_increment, ['%d' % val for val in values])plt.xticks([])plt.title('Cost price increase') # plt.show()-display graph# Create image. plt.savefig ignores figure edge and face color.fig = plt.gcf()plt.savefig('pyplot-table-original.png',            bbox_inches='tight',            dpi=150)
 
 
Output:
 
 
Example 2: Let’s consider the rise in price of milk of different brands in past years
 
Python3
# importing necessary packagessimport numpy as npimport matplotlib.pyplot as plt  # input data valuesdata = [[322862, 876296, 45261, 782372,  32451],        [58230, 113139,  78045,  99308, 516044],        [89135,  8552, 15258, 497981, 603535],        [24415,  73858, 150656, 19323,  69638],        [139361, 831509, 43164, 7380,  52269]] # preparing values for graphcolumns = ('Gokul', 'Kwality', 'Bakhri', 'Arun', 'Amul')rows = ['%d months' % x for x in (50, 35, 20, 10, 5)]values = np.arange(0, 2500, 500)value_increment = 1000 # Adding pastel shades to graphcolors = plt.cm.Oranges(np.linspace(22, 3, 12))n_rows = len(data)index = np.arange(len(columns)) + 0.3bar_width = 0.4 # Initialing vertical-offset for the graph.y_offset = np.zeros(len(columns)) # Plot bars and create text labels for the tablecell_text = []for row in range(n_rows):    plt.bar(index, data[row], bar_width, bottom=y_offset, color=colors[row])    y_offset = y_offset + data[row]    cell_text.append(['%1.1f' % (x / 1000.0) for x in y_offset]) # Reverse colors and text labels to display table contents with# color.colors = colors[::-1]cell_text.reverse() # Add a table at the bottomthe_table = plt.table(cellText=cell_text,                      rowLabels=rows,                      rowColours=colors,                      colLabels=columns,                      loc='bottom') # make space for the table:plt.subplots_adjust(left=0.2, bottom=0.2)plt.ylabel("Rise in Rs's".format(value_increment))plt.yticks(values * value_increment, ['%d' % val for val in values])plt.xticks([])plt.title('Cost of Milk od diff. brands') # plt.show()-display graph# Create image. plt.savefig ignores figure edge and face color.fig = plt.gcf()plt.savefig('pyplot-table-original.png',            bbox_inches='tight',            dpi=150)
 
 
Output:
 
 
surindertarika1234
Matplotlib Pyplot-class
Python-matplotlib
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Install PIP on Windows ?
Check if element exists in list in Python
How To Convert Python Dictionary To JSON?
Python Classes and Objects
How to drop one or multiple columns in Pandas Dataframe
Python | Get unique values from a list
Defaultdict in Python
Python | os.path.join() method
Create a directory in Python
Python | Pandas dataframe.groupby()