# Creating Stunning Visuals and Legends with Matplotlib

## Creating Stunning Visuals with Matplotlib

Visualization is an essential component of data analysis, and Matplotlib is one of the most widely used libraries for data visualization in Python. With Matplotlib, you can create stunning visualizations that can help you communicate your insights with others effectively.

In this article, we’ll explore two common tasks in Matplotlib; drawing circles, and modifying axis and plot appearance.

## Creating a Single Circle

The Circle() function is a fundamental feature in Matplotlib that allows you to draw a circle. The syntax for creating a circle is straightforward, and it requires three inputs: the (x, y) coordinates of the center of the circle, and the circle’s radius.

Let’s consider an example:

“`

import matplotlib.pyplot as plt

from matplotlib.patches import Circle

fig, ax = plt.subplots()

circle1 = Circle((0, 0), 0.3, color=’red’)

plt.show()

“`

In the code above, we first imported the required libraries and created a plot Figure and Axes object. We then defined a Circle instance with its center coordinates `(0, 0)` and a radius of `0.3` units and specified the desired color, which is red in this case.

Finally, we added the Circle instance to the axes and called `plt.show()` to display the plot.

## Creating Multiple Circles

To create multiple circles, you can loop over a list of center coordinates and radius values, and create Circle instances for each one. Let’s consider an example:

“`

fig, ax = plt.subplots()

circle_list = [(0, 0, 0.3), (0.5, 0.5, 0.2), (1, 1, 0.4)]

for xc, yc, r in circle_list:

circle = Circle((xc, yc), r, color=’blue’, alpha=0.5)

plt.xlim(-0.5, 1.5)

plt.ylim(-0.5, 1.5)

plt.show()

“`

In the code above, we defined a list of center coordinates `(xc, yc)` and radius `r` values for the three circles to be created.

We then looped over the list, creating Circle instances for each set of coordinates and added the circle instance to the axes. We also specified the color and transparency `alpha` of the circles.

Finally, we set the limits of the x and y-axis to ensure that all the circles are visible and called `plt.show()` to display the plot.

## Modifying Circle Appearance

In addition to specifying the Circle’s center coordinates, radius, and color, you can further modify the appearance of the circle. For example, you can adjust the transparency (or alpha value) of the circle using `alpha=`.

In the example above, we set an alpha value of 0.5 for all the circles to make them partially transparent. You can also modify the edge color and line style of the Circle using the `edgecolor=` and `linestyle=` arguments in the Circle() function.

For example,

“`

circle = Circle((xc, yc), r, color=’blue’, alpha=0.2, edgecolor=’black’, linestyle=’–‘)

“`

would create a circle with a blue fill color, black edge color, and dashed line.

## Setting Axis Limits

Matplotlib lets you set the limits of the x and y-axis using the `xlim()` and `ylim()` functions, respectively. To set the limits of the x-axis to be between -10 and 10 and the limits of the y-axis to be between -5 and 5, you would do:

“`

plt.xlim(-10, 10)

plt.ylim(-5, 5)

“`

In addition to setting the limits of the axis in Matplotlib, you can also modify the ticks, labels, and title of the axis using the `xticks()`, `yticks()`, `xlabel()`, `ylabel()`, and `title()` functions, respectively.

## Setting Plot Size

To modify the size of the plot, you can use the `figsize=` argument in the `plt.figure()` function. For example, to create a plot with width 10 inches and height 5 inches, you would do:

“`

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

“`

In addition to modifying the axis labels and ticks, you can add a title to the plot using the `title()` function. For example,

“`

plt.title(‘My Plot Title’)

“`

will create a plot title with the text ‘My Plot Title.’

## Changing Colors and Line Styles

Matplotlib provides you with a wide range of colors and line styles that you can use in your plots. You can modify the color and line style of the plot using the `color` and `linestyle` arguments in the `plt.plot()` function, respectively.

For example,

“`

plt.plot(x, y, color=’red’, linestyle=’–‘)

“`

will create a red line plot with a dashed line style.

## Conclusion

In conclusion, with Matplotlib, you can create stunning visualizations that can help you communicate your insights with others effectively. We have explored two common tasks in Matplotlib, drawing circles, and modifying axis and plot appearance, and discussed their various features and options.

Armed with this knowledge, you can now create compelling and informative plots that will help you understand and communicate your data better.

## Adding Legend to Matplotlib Plot

Matplotlib is a versatile library that allows you to plot multiple lines on a single graph. When creating a plot with multiple lines, it is essential to make each line easily distinguishable.

A legend can help in this regard by providing an explanation of the colors or line styles used in the plot. In this section, we’ll explore how to create and modify a legend in Matplotlib.

## Defining Multiple Lines on a Plot

Before creating a legend, we need to define multiple lines on the plot. Suppose we have two sets of data, x1 and y1, and x2 and y2.

We plot them using `plt.plot()` function, as shown below:

“`

import matplotlib.pyplot as plt

x1 = [1, 2, 3, 4, 5]

y1 = [2, 4, 6, 8, 10]

x2 = [1, 2, 3, 4, 5]

y2 = [1, 3, 5, 7, 9]

plt.plot(x1, y1)

plt.plot(x2, y2)

plt.show()

“`

The code above will generate a plot with two lines, each representing a set of data. However, there is no information about which line represents which data.

## Creating a Legend

A legend can help us identify which line represents which set of data. We can create a legend by calling the `plt.legend()` function after the lines have been defined, as shown below:

“`

plt.plot(x1, y1, label=’Data 1′)

plt.plot(x2, y2, label=’Data 2′)

plt.legend()

plt.show()

“`

In the code above, we added a `label` argument to each `plt.plot()` function, specifying what data the line represents.

We then called the `plt.legend()` function to create a legend for the plot. The `plt.legend()` function automatically uses the labels specified in `plt.plot()` function to generate the legend.

## Modifying Legend Appearance

Matplotlib allows us to modify the appearance of the created legend. We can specify the font size using the `fontsize` argument, the title of the legend using the `title` argument, and the location of the legend using the `loc` argument.

For instance, if we want to change the font size of the legend to 12 and move the legend to the upper left corner of the plot, we can do the following:

“`

plt.plot(x1, y1, label=’Data 1′)

plt.plot(x2, y2, label=’Data 2′)

plt.legend(fontsize=12, title=’Legend’, loc=’upper left’)

plt.show()

“`

As shown above, we used the `fontsize` argument to change the font size of the legend to 12, the `title` argument to specify the title of the legend to ‘Legend,’ and the `loc` argument to specify the location of the legend in the upper left corner of the plot.

## Saving a Plot

Matplotlib allows us to save a plot in different file formats such as PNG, PDF, and SVG, among others. We can save a plot using the `plt.savefig()` function.

The syntax is straightforward, as shown below:

“`

plt.plot(x1, y1, label=’Data 1′)

plt.plot(x2, y2, label=’Data 2′)

plt.legend(fontsize=12, title=’Legend’, loc=’upper left’)

plt.savefig(‘plot.png’, dpi=300, bbox_inches=’tight’)

“`

The code above will save the plot in PNG format in the current working directory with the filename `plot.png`. The `dpi` argument specifies the dots per inch of the saved image, while the `bbox_inches` argument specifies the bounding box in inches that needs to be saved.

The `bbox_inches=’tight’` argument ensures that the plot’s edges are not cut off when saved.

## Displaying a Plot

In addition to saving a plot, we can also display the plot in a Matplotlib window using the `plt.show()` function. This function opens a new window where the plot is displayed.

Thus, you can use this function to preview the plot before saving it. However, it is important to note that `plt.show()` should only be called once per script and that it needs to be the last line of the script.

Any code after `plt.show()` will not be executed until the corresponding window is closed.