1.折线图——plot函数绘图
plot函数
matplotlib.pyplot.plot(*args,**kwargs)
import matplotlib.pyplot as pltimport numpy as np###加载数据data = np.load('./国民经济核算季度数据.npz')print(data)for tmp in data:print(tmp)columns = data['columns']values = data['values']print(columns)print(values)### 创建画布plt.figure(figsize=(20,10),dpi=80)### 准备数据x = values[:,0]y1 = values[:,3]y2 = values[:,4]y3 = values[:,5]###绘制图形plt.plot(x, y1, color='#0000FF', linestyle='-', linewidth=1.2, marker="*", markersize=7, markerfacecolor='b',markeredgecolor='g')plt.plot(x, y2, color='#800000', linestyle='-', linewidth=1.2, marker="1", markersize=7, markerfacecolor='k',markeredgecolor='k')plt.plot(x, y3, color='#FFD700', linestyle='--', linewidth=1.2, marker=".", markersize=7, markerfacecolor='b',markeredgecolor='g')### 增加修饰##默认不支持中文,想用中文,必须进行设置RC参数plt.rcParams['font.sans-serif'] = 'SimHei'##默认不支持负号,想用负号,进行RC参数设置plt.rcParams['axes.unicode_minus'] = False##添加标题plt.title('2000~各产业季度生产总值')##添加x,y轴标签plt.xlabel('时间')plt.ylabel('各产业生产总值(亿元)')x_label = values[:, 1]##x刻度设置plt.xticks(x[::4], x_label[::4], rotation=45)##增加图例----loc参数可以设置图例位置plt.legend(['第一产业', '第二产业', '第三产业'])##网格线-----axis的值必须是字符串plt.grid(b=True, axis='y')##保存图片plt.savefig('./各产业季度生产总值.png')###展示图形plt.show()
2
2.散点图——scatter函数绘图
scatter函数
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, alpha=None,**kwargs)
常用参数:
import matplotlib.pyplot as pltimport numpy as npdata = np.load('./国民经济核算季度数据.npz')print(data)for tmp in data:print(tmp)columns = data['columns']values = data['values']###一个画布里面绘制多个图形###增加子图## 创建画布,返回画布对象fig = plt.figure(figsize=(20,10),dpi=100)##给画布对象增加子图#参数1,2表示增加的子图为几行几列,参数3表示第几个图fig.add_subplot(2,1,1)###########################################################################x = values[:, 0]y1 = values[:, 3]y2 = values[:, 4]y3 = values[:, 5]###绘图------散点图必须为一个x对应一个yplt.scatter(x, y1,marker='*')plt.scatter(x, y2,marker='s')plt.scatter(x, y3,marker='x')# plt.tight_layout(pad=40,h_pad=10)### 增加修饰##默认不支持中文,想用中文,必须进行设置RC参数plt.rcParams['font.sans-serif'] = 'SimHei'##默认不支持负号,想用负号,进行RC参数设置plt.rcParams['axes.unicode_minus'] = Falseplt.title('各季度生产总值散点图')plt.xlabel('日期')plt.ylabel('生产总值(亿元)')plt.legend(["第一产业","第二产业","第三产业"])x_label = values[:, 1]##x刻度设置plt.xticks(x[::4], x_label[::4], rotation=45)fig.add_subplot(2,1,2)# plt.subplot(222,frameon=True) #frameon 是否设置外边框#准备数据x = values[:,1]y1 = values[:,6]y2 = values[:,7]y3 = values[:,8]y4 = values[:,9]y5 = values[:,10]y6 = values[:,11]y7 = values[:,12]y8 = values[:,13]y9 = values[:,14]plt.scatter(x,y1,marker='1')plt.scatter(x,y2,marker='2')plt.scatter(x,y3,marker='3')plt.scatter(x,y4,marker='4')plt.scatter(x,y5,marker='h')plt.scatter(x,y6,marker='s')plt.scatter(x,y7,marker='x')plt.scatter(x,y8,marker='p')plt.scatter(x,y9,marker='d')##默认不支持中文,想用中文,必须进行设置RC参数plt.rcParams['font.sans-serif'] = 'SimHei'##默认不支持负号,想用负号,进行RC参数设置plt.rcParams['axes.unicode_minus'] = Falseplt.title('各行业生产总值散点图')plt.xlabel('日期')plt.ylabel('各行业生产总值(亿元)')x_label = values[:, 1]##x刻度设置plt.xticks(x[::4], x_label[::4], rotation=45)plt.legend(["农林业", "工业", "建筑业", "批发业", "交通业", "餐饮业", "金融业", "房地产业", "其他"])plt.savefig('各行业生产总值.png')fig.show()
3.柱状图——bar函数绘图
bar函数
matplotlib.pyplot.bar(left,height,width = 0.8,bottom = None,hold = None,data = None,** kwargs
import matplotlib.pyplot as pltimport numpy as npdata = np.load('./国民经济核算季度数据.npz')print(data)for tmp in data:print(tmp)columns = data['columns']values = data['values']print('columns', columns)print('values', values)##创建画布fig = plt.figure(figsize=(20,10))###调整子图之间的间距plt.subplots_adjust(hspace=0.5, wspace=0.5)##增加子图fig.add_subplot(2, 2, 1)x = [1, 2, 3]y = values[0, 3:6]##绘图plt.bar(x, y, width=0.6, color=['r', 'g', 'b'])###修饰##默认不支持中文,想用中文,必须进行设置RC参数plt.rcParams['font.sans-serif'] = 'SimHei'##默认不支持负号,想用负号,进行RC参数设置plt.rcParams['axes.unicode_minus'] = Falseplt.title("2000各产业生产总值")plt.xlabel("产业")plt.ylabel("生产总值(亿元)")x_label = ["第一产业", "第二产业", "第三产业"]plt.xticks(x, x_label)###添加值for i, j in zip(x, y):plt.text(i-0.06, j + 0.11, '%d' % j)plt.grid(b=True, axis='y')fig.add_subplot(2, 2, 2)x = [1, 2, 3]y = values[-4, 3:6]plt.bar(x, y, width=0.6, color=['r', 'g', 'b'])###修饰##默认不支持中文,想用中文,必须进行设置RC参数plt.rcParams['font.sans-serif'] = 'SimHei'##默认不支持负号,想用负号,进行RC参数设置plt.rcParams['axes.unicode_minus'] = False###添加标题plt.title("各产业生产总值")##定义x轴plt.xlabel("产业")##定义y轴plt.ylabel("生产总值(亿元)")##替换x轴刻度x_label = ["第一产业", "第二产业", "第三产业"]plt.xticks(x, x_label)###添加值for i, j in zip(x, y):plt.text(i-0.06, j + 0.5, '%d' % j)###增加网格线plt.grid(b=True, axis='y')fig.add_subplot(2, 2, 3)x = np.arange(1, 10)y = values[0, 6:]##默认不支持中文,想用中文,必须进行设置RC参数plt.rcParams['font.sans-serif'] = 'SimHei'##默认不支持负号,想用负号,进行RC参数设置plt.rcParams['axes.unicode_minus'] = False###绘图plt.bar(x, y, color=["blue", "green", "red", "yellow", "magenta", "brown", "cyan", "khaki", "navy"])plt.title('2000年第一季度各行业生产总值')plt.xlabel('行业')plt.ylabel('生产总值(亿元)')x_label = ["农林业", "工业", "建筑业", "批发业", "交通业", "餐饮业", "金融业", "房地产业", "其他"]plt.xticks(x, x_label)for i, j in zip(x, y):plt.text(i - 0.13, j + 0.11, '%d' % j)plt.grid(b=True, axis='y')fig.add_subplot(2, 2, 4)x = np.arange(1, 10)y = values[-4, 6:]##默认不支持中文,想用中文,必须进行设置RC参数plt.rcParams['font.sans-serif'] = 'SimHei'##默认不支持负号,想用负号,进行RC参数设置plt.rcParams['axes.unicode_minus'] = False###绘图plt.bar(x, y, color=["blue", "green", "red", "yellow", "magenta", "brown", "cyan", "khaki", "navy"])plt.title('第一季度各行业生产总值')plt.xlabel('行业')plt.ylabel('生产总值(亿元)')x_label = ["农林业", "工业", "建筑业", "批发业", "交通业", "餐饮业", "金融业", "房地产业", "其他"]plt.xticks(x, x_label)for i, j in zip(x, y):plt.text(i - 0.13, j + 0.11, '%d' % j)plt.grid(b=True, axis='y')fig.show()
4.饼状图——pie函数绘图
pie函数
matplotlib.pyplot.pie(x, explode=None, labels=None, colors=None, autopct=None,pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, … )
常用参数:
import matplotlib.pyplot as pltimport numpy as npdata = np.load('./国民经济核算季度数据.npz')for tmp in data:print(tmp)columns = data["columns"]values = data["values"]print(columns)print(values)###创建画布fig = plt.figure(figsize=(20, 10))##默认不支持中文,想用中文,必须进行设置RC参数plt.rcParams['font.sans-serif'] = 'SimHei'##默认不支持负号,想用负号,进行RC参数设置plt.rcParams['axes.unicode_minus'] = False##创建子画布fig.add_subplot(2, 2, 1)x = values[0, 3:6]##离心半径explode = (0.01, 0.01, 0.01)label = ["第一产业", "第二产业", "第三产业"]###绘图------shadow增加阴影,labels 增加标签 autopct 占比plt.pie(x, explode=explode, labels=label, autopct="%.1f%%")##椭圆变成圆形plt.axis('equal')fig.add_subplot(2, 2, 2)x = values[-4, 3:6]explode = (0.01, 0.01, 0.01)label = ["第一产业", "第二产业", "第三产业"]plt.pie(x, explode=explode, labels=label, autopct="%.1f%%")plt.axis("equal")fig.add_subplot(2, 2, 3)x = values[0, 6::]label = ["农林业", "工业", "建筑业", "批发业", "交通业", "餐饮业", "金融业", "房地产业", "其他"]plt.pie(x, labels=label, autopct="%.1f%%")plt.axis("equal")fig.add_subplot(2, 2, 4)x = values[-4, 6::]label = ["农林业", "工业", "建筑业", "批发业", "交通业", "餐饮业", "金融业", "房地产业", "其他"]plt.pie(x, labels=label, autopct="%.1f%%")plt.axis("equal")## 保存fig.savefig('饼图案例.png')##展示fig.show()
如果觉得《matplotlib——折线图 散点图 柱状图 饼状图》对你有帮助,请点赞、收藏,并留下你的观点哦!