Python-Matplotlib可视化(3)——自定义样式绘制精美统计图
前言
matplotlib提供的所有绘图都带有默认样式。虽然这可以进行快速绘图,但有时可能需要自定义绘图的颜色和样式,以对绘制更加精美、符合审美要求的图像。matplotlib的设计考虑到了此需求,很容易调整matplotlib图形的样式。
控制线条样式和线宽
在实践中,除了颜色,大多数情况下我们还要对图形的线条样式等进行控制,以为线条样式添加多样性。
线条样式
import numpy as np
import matplotlib.pyplot as plt
def gaussian(x, mu, sigma):
a = 1. / (sigma * np.sqrt(2. * np.pi))
b = -1. / (2. * sigma ** 2)
return a * np.exp(b * (x - mu) ** 2)
x = np.linspace(-6, 6, 1024)
plt.plot(x, gaussian(x, 0., 1.), color = 'y', linestyle = 'solid')
plt.plot(x, gaussian(x, 0., .5), color = 'c', linestyle = 'dashed')
plt.plot(x, gaussian(x, 0., .25), color = 'm', linestyle = 'dashdot')
plt.show()
Tips:使用plt.plot()的linestyle参数来控制曲线的样式,其他可用线条样式包括:"solid"、"dashed"、"dotted"、"dashdot"。
同样,线条样式设置不仅限于plt.plot()
,任何由线条构成的图形都可以使用此参数,也可以说linestyle
参数可用于所有涉及线条渲染的命令。例如,可以修改条形图的线条样式:
import numpy as np
import matplotlib.pyplot as plt
n = 10
a = np.random.random(n)
b = np.random.random(n)
x = np.arange(n)
plt.bar(x, a, color='c')
plt.bar(x, a+b, bottom=a, color='w', edgecolor='black', linestyle = 'dashed')
plt.show()
Tips:由于在条形图、饼图等图形中,默认的边线的颜色为白色,因此若要在白色背景上进行显示,需要通过edgecolor参数改变边线颜色。
线宽
使用linewidth
参数可以修改线条的粗细。默认情况下,linewidth
设置为1个单位。利用线条的粗细可以在视觉上强调某条特定的曲线。
import numpy as np
import matplotlib.pyplot as plt
def gaussian(x, mu, sigma):
a = 1. / (sigma * np.sqrt(2. * np.pi))
b = -1. / (2. * sigma ** 2)
return a * np.exp(b * (x