一、折线图+折线图
import numpy as np import matplotlib.pyplot as plt #解决中文乱码问题 plt.rcParams['font.sans-serif'] = ['Arial Unicode MS'] # 解决负号无法正常显示的问题 plt.rcParams['axes.unicode_minus']=False #在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示 # plt.savefig("test.svg", format="svg") # 建立坐标系 plt.subplot(1,1,1) # 指明x和y的值 x = np.array([1,2,3,4,5,6,7,8,9]) y1 = np.array([866,2335,5710,6482,6120,1605,3813,4428,4631]) y2 = np.array([433,1167,2855,3241,1060,802,1906,2214,3515]) # 绘图 plt.plot(x,y1,color = 'k',linestyle = 'solid',linewidth =1,marker = 'o',markersize = 3,label = '注册人数') plt.plot(x,y2,color = 'k',linestyle = 'dashdot',linewidth =1,marker = 'o',markersize = 3,label = '激活人数') # 设置标题 plt.title('xxxxxxxxxx',loc='center') # 添加数据标签 for a,b in zip(x,y1): plt.text(a,b,b,ha='center',va='bottom',fontsize = 11) for a,b in zip(x,y2): plt.text(a,b,b,ha='center',va='bottom',fontsize = 11) # 设置x轴y轴的名称 plt.xlabel('月份') plt.ylabel('注册量') #设置x轴y轴的的刻度 plt.xticks(np.arange(1,10,1),['1月','2月','3月','4月','5月','6月','7月','8月','9月']) plt.yticks(np.arange(1000,7000,1000),['1000人','2000人','3000人','4000人','5000人','6000人','7000人','8000人','9000人']) # 设置图例 plt.legend() # 显示图表 plt.show()
效果如下:
二、折线图+柱形图
import numpy as np import matplotlib.pyplot as plt #解决中文乱码问题 plt.rcParams['font.sans-serif'] = ['Arial Unicode MS'] # 解决负号无法正常显示的问题 plt.rcParams['axes.unicode_minus']=False #在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示 # plt.savefig("test.svg", format="svg") # 建立坐标系 plt.subplot(1,1,1) # 指明x和y的值 x = np.array([1,2,3,4,5,6,7,8,9]) y1 = np.array([866,2335,5710,6482,6120,1605,3813,4428,4631]) y2 = np.array([433,1167,2855,3241,1060,802,1906,2214,3515]) # 绘图 plt.plot(x,y1,color = 'k',linestyle = 'solid',linewidth =1,marker = 'o',markersize = 3,label = '注册人数') plt.bar(x,y2,color = 'k',label = '激活人数') # 设置标题 plt.title('xxxxxxxxxx',loc='center') # 添加数据标签 for a,b in zip(x,y1): plt.text(a,b,b,ha='center',va='bottom',fontsize = 11) for a,b in zip(x,y2): plt.text(a,b,b,ha='center',va='bottom',fontsize = 11) # 设置x轴y轴的名称 plt.xlabel('月份') plt.ylabel('注册量') #设置x轴y轴的的刻度 plt.xticks(np.arange(1,10,1),['1月','2月','3月','4月','5月','6月','7月','8月','9月']) plt.yticks(np.arange(1000,7000,1000),['1000人','2000人','3000人','4000人','5000人','6000人','7000人','8000人','9000人']) # 设置图例 plt.legend() # 显示图表 plt.show()
效果如下:
三、绘制双坐标轴的图表
import numpy as np import matplotlib.pyplot as plt #解决中文乱码问题 plt.rcParams['font.sans-serif'] = ['Arial Unicode MS'] # 解决负号无法正常显示的问题 plt.rcParams['axes.unicode_minus']=False #在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示 # plt.savefig("test.svg", format="svg") # 建立坐标系 plt.subplot(1,1,1) # 指明x和y的值 x = np.array([1,2,3,4,5,6,7,8,9]) y1 = np.array([866,2335,5710,6482,6120,1605,3813,4428,4631]) y2 = np.array([0.5,0.3,0.3,0.4,0.3,0.3,0.9,0.01,0.15]) # 绘制在主坐标轴上的图表 plt.plot(x,y1,color = 'k',linestyle = 'solid',linewidth =1,marker = 'o',markersize = 3,label = '注册人数') # 设置主x轴y轴的名称 plt.xlabel('月份') plt.ylabel('注册量') # 设置图例 plt.legend(loc = 'upper left') # 调用twin方法 plt.twinx() # 绘制次坐标轴的图表 plt.plot(x,y2,color = 'k',linestyle = 'dashdot',linewidth =1,marker = 'o',markersize = 3,label = '激活率') # 设置次x轴y轴的名称 plt.xlabel('月份') plt.ylabel('注册量') # 设置图例 plt.legend() # 显示图表 plt.show()
效果如下: