The concept of Matplotlib will not be introduced here
The editor has previously shared with you the line chart and pie chart effects achieved by python using matplotlib. Interested friends can also click to view, below Let’s take a look at how Python uses matplotlib to draw a histogram, as follows:
1. Basic histogram
1 2 3 4 5 6 | import matplotlib.pyplot as plt
data = [5, 20, 15, 25, 10]
plt.bar(range(len(data)), data)
plt.show()
|
Copy after login

plt.bar function signature is:
1 | bar(left, height, width=0.8, bottom=None, **kwargs)
|
Copy after login
In fact, left, height, width, The four parameters of bottom determine the position and size of the cylinder. By default, left is the center position of the cylinder (the meaning of the left value can be changed through the align parameter), that is:
(left - width / 2, bottom)
is the lower left corner position
(left + width / 2, bottom + height)
is the upper right corner position
For example:
1 2 3 4 5 6 | import matplotlib.pyplot as plt
data = [5, 20, 15, 25, 10]
plt.bar([0.3, 1.7, 4, 6, 7], data, width=0.6, bottom=[10, 0, 5, 0, 5])
plt.show()
|
Copy after login

##2. Set column style
(1) Color
You can set the cylinder color through the facecolor (or fc) keyword parameter, for example:
1 2 3 4 5 6 | import matplotlib.pyplot as plt
data = [5, 20, 15, 25, 10]
plt.bar(range(len(data)), data, fc='g')
plt.show()
|
Copy after login

You can set multiple colors at one time through the color keyword parameter, for example:
1 2 3 4 5 6 | import matplotlib.pyplot as plt
data = [5, 20, 15, 25, 10]
plt.bar(range(len(data)), data, color='rgb') # or `color=['r', 'g', 'b']`
plt.show()
|
Copy after login

(2) The related keyword parameters of stroke
are:
- edgecolor or ec
- linestyle or ls
##linewidth or lw For example:
1 2 3 4 5 6 | import matplotlib.pyplot as plt
data = [5, 20, 15, 25, 10]
plt.bar(range(len(data)), data, ec='r', ls='--', lw=2)
plt.show()
|
Copy after login

(3) Fill
hatch keyword can be used to set the fill style, the possible values are: /, \, |, -, +, x, o, O, ., *. For example:
1 2 3 4 5 6 | import matplotlib.pyplot as plt
data = [5, 20, 15, 25, 10]
plt.bar(range(len(data)), data, ec='k', lw=1, hatch='o')
plt.show()
|
Copy after login

3. Set tick label
1 2 3 4 5 6 7 | import matplotlib.pyplot as plt
data = [5, 20, 15, 25, 10]
labels = ['Tom', 'Dick', 'Harry', 'Slim', 'Jim']
plt.bar(range(len(data)), data, tick_label=labels)
plt.show()
|
Copy after login

4. Stacked column chart
Through the bottom parameter, you can Draw a stacked column chart. For example:
1 2 3 4 5 6 7 8 9 10 11 12 | import numpy as np
import matplotlib.pyplot as plt
size = 5
x = np.arange(size)
a = np.random.random(size)
b = np.random.random(size)
plt.bar(x, a, label='a')
plt.bar(x, b, bottom=a, label='b')
plt.legend()
plt.show()
|
Copy after login

##5. Side-by-side column chart
Drawing side-by-side histograms is similar to stacked histograms. They draw multiple groups of columns. You only need to control the position and size of each group of columns. For example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import numpy as np
import matplotlib.pyplot as plt
size = 5
x = np.arange(size)
a = np.random.random(size)
b = np.random.random(size)
c = np.random.random(size)
total_width, n = 0.8, 3
width = total_width / n
x = x - (total_width - width) / 2
plt.bar(x, a, width=width, label='a')
plt.bar(x + width, b, width=width, label='b')
plt.bar(x + 2 * width, c, width=width, label='c')
plt.legend()
plt.show()
|
Copy after login
##6. Bar chart
Use the barh method to draw a bar chart. For example:
1 2 3 4 5 6 | import matplotlib.pyplot as plt
data = [5, 20, 15, 25, 10]
plt.barh(range(len(data)), data)
plt.show()
|
Copy after login
The signature of the plt.barh method is: 
1 | barh(bottom, width, height=0.8, left=None, **kwargs)
|
Copy after login
You can see that it is similar to the plt.bar method. Therefore, the drawing methods of stacked bar charts and side-by-side bar charts are similar to the previous ones and will not be described in detail.
7. Positive and Negative Bar Chart
1 2 3 4 5 6 7 8 9 | <strong>import numpy as np
import matplotlib.pyplot as plt
a = np. array ([5, 20, 15, 25, 10])
b = np. array ([10, 15, 20, 15, 5])
plt.barh(range(len(a)), a)
plt.barh(range(len(b)), -b)
plt.show()</strong>
|
Copy after login
For more Python tutorials on using matplotlib to draw histograms, please pay attention to the PHP Chinese website!