虽然matplotlib提供了许多快捷绘图函数和方法,但是每个人的绘图风格和思路总有特异化的规律,在我长时间地使用堆砌代码的方式进行绘图后,开始尝试一种个性度更高、绘图更快捷并且更为灵活的方式
需要说明的是,本人可能是由于未接触到更高级的方法,从而没有办法按照自己的想法进行快速绘图。因此,下面介绍的方法全由个人摸索而来,无高低之分,仅有合适与否。
数据集的展示
绘图之前,首先展示本文的数据集形状:
演示用到的数据是122家企业的进销价税合计、发票有效率等,具体见图中。
此次绘图的目的
此次绘图的目的如下:根据不同的信誉评级,绘制出不同评级企业的"进项价税合计"和"销项价税合计"的相关关系,如下图所示。
可以看到,这是由四张子图拼接而成的大图,每个子图展示了对应评级下的企业进项关系,同时又有其他3项评级企业的进项关系作为透明背景,用来对比展示,整体而言,图片较为美观,且具有信息量。
绘图的方法——method one, method two and method three
method one
方法1是通过传统的代码堆砌,分别完成四张子图的具体绘制。代码如下
fig = plt.figure(figsize=(12,7))
ax1 = fig.add_subplot(2,2,1)
sns.lineplot(data = data_a, x = 'Total input value tax', y = 'Total sales tax', alpha = 1, color = 'royalblue' )
sns.lineplot(data = data_b, x = 'Total input value tax', y = 'Total sales tax', alpha = .5, color = 'royalblue' )
sns.lineplot(data = data_c, x = 'Total input value tax', y = 'Total sales tax', alpha = .5, color = 'royalblue')
sns.lineplot(data = data_d, x = 'Total input value tax', y = 'Total sales tax', alpha = .5 , color = 'royalblue')
sns.scatterplot(data = data_a, x = 'Total input value tax', y = 'Total sales tax', alpha = .9, color = 'royalblue')
plt.yscale('log')
plt.xscale('log')
plt.grid(linestyle = '--')
plt.title('Credition A')
ax2 = fig.add_subplot(2,2,2)
sns.lineplot(data = data_a, x = 'Total input value tax', y = 'Total sales tax', alpha = .5, color = 'royalblue' )
sns.lineplot(data = data_b, x = 'Total input value tax', y = 'Total sales tax', alpha = 1, color = 'royalblue' )
sns.lineplot(data = data_c, x = 'Total input value tax', y = 'Total sales tax', alpha = .5, color = 'royalblue')
sns.lineplot(data = data_d, x = 'Total input value tax', y =