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 - mu) ** 2) x = np.linspace(-6, 6, 1024) for i in range(64): samples = np.random.standard_normal(50) mu, sigma = np.mean(samples), np.std(samples) plt.plot(x, gaussian(x, mu, sigma), color = '.75', linewidth = .5) plt.plot(x, gaussian(x, 0., 1.), color = 'c', linewidth = 3.) plt.show() 复制代码
作者:盼小辉丶
链接:https://juejin.cn/post/7021721118486560776