颜色标记和线型
#导入模块 import matplotlib.pyplot as plt import matplotlib as mpl plt.figure() # 解决中文显示问题 mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False plt.plot([1,2,3],[5,7,4],color='red', linestyle='dashed', marker='o',markersize = 10,alpha=0.5) plt.show()
相关操作
1、plt.plot(x,y1,x,y2) ——一张图上显示两条曲线,两个为一组构成一条曲线
import matplotlib.pyplot as plt import numpy as np x = np.arange(-3,3,0.1) y1 = np.sin(x) y2 = np.cos(x) plt.figure() plt.plot(x,y1,x,y2) #一张图上显示两条曲线 plt.plot([1,2,4,3,4]) #没有新的画板,就在一张图上显示 #如果只接收到一个值就默认为y值 ,而x默认为从0 到 n plt.show()
2、图例和边框的操作
import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np # 解决中文显示问题 mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False x1 = [1,2,3] y1 = [5,7,4] x2 = [1,2,3] y2 = [10,14,12] plt.figure() plt.plot(x1,y1,'ro--',label = 'First Line') #设置线条标签 plt.plot(x2,y2,'b-',label = 'Second Line') #设置标题、标签 plt.xlabel('月份') #X轴标签 plt.ylabel('美元单位/亿') #Y轴标签 plt.title('进出口数据') #标题 #设置X轴范围 plt.xlim(0,6) #设置y轴范围 plt.ylim(0,15) #设置X轴刻度 plt.xticks(np.linspace(1,6,6),[str(i) + '月' for i in range(1,7)]) #设置y轴刻度 plt.yticks(np.arange(0,16,3),['0','300','600','900','1200','1500']) #获取坐标轴信息 ax = plt.gca() #设置边框 ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') #legend 生成默认图例 plt.legend() plt.show()
3、用函数plt.annotate()给折线图折点添加坐标
#模块pyplot包含很多生成图表的函数 import matplotlib.pyplot as plt import numpy as np input_values = [1,2,3,4,5,6] squares = [1,4,9,16,25,36] #plot()绘制折线图 plt.plot(input_values,squares,linewidth=5) #np.array()将列表转换为存储单一数据类型的多维数组 x = np.array(input_values) y = np.array(squares) #annotate()给折线点设置坐标值 for a,b in zip(x,y): plt.annotate('(%s,%s)'%(a,b),xy=(a,b),xytext=(-20,10),textcoords='offset points') #设置标题 plt.title('Square Numbers',fontsize=24) plt.xlabel('Value',fontsize=14) plt.ylabel('Square of Value',fontsize=14) #设置刻度的大小,both代表xy同时设置 plt.tick_params(axis='both',labelsize=14) #show()打开matplotlib查看器,并显示绘制的图形 plt.show()
子图的几种操作方式
1、方式一
#subplot子图(方式一) import matplotlib.pyplot as plt x1 = [1,2,3] y1 = [5,7,4] x2 = [1,2,3] y2 = [10,14,12] plt.figure(num=1) plt.subplot(221) plt.plot(x1,y1,'r-') plt.subplot(223) plt.plot(x2,y2,'b--') plt.show()
2、方式二
import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np # 解决中文显示问题 mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False #获取figure对象 fig = plt.figure(figsize = (8,6)) #figsize调整大小 #在figure上创建对象 ax1 = fig.add_subplot(221) ax2 = fig.add_subplot(222) ax3 = fig.add_subplot(212) #在ax1上绘图 ax1.plot(np.random.randn(50).cumsum(),'g-') #在ax2上绘图 ax2.plot(np.random.randn(50).cumsum(),'b--') #在ax3上绘图 ax3.plot(np.random.randn(50).cumsum(),'k--') plt.show()
3、方式三
#方式三 import matplotlib.pyplot as plt #图一 fig,axes = plt.subplots(2,2) print(fig) #输出为 Figure(640x480) print(axes) ''' 输出为 [[<matplotlib.axes._subplots.AxesSubplot object at 0x000001A170A5DF28> <matplotlib.axes._subplots.AxesSubplot object at 0x000001A1721660B8>] [<matplotlib.axes._subplots.AxesSubplot object at 0x000001A172197668> <matplotlib.axes._subplots.AxesSubplot object at 0x000001A1721C9C18>]] ''' #图二 Plot, axes = plt.subplots( nrows=4, ncols=1, sharex=True, sharey=False ) #gridspec_kw={'height_ratios':[2,2,1,1]} Plot.suptitle('test', fontsize=20)#设置fig标题 axes[0].plot(range(10),'ro-') axes[1].plot(range(10),'bo-') axes[2].plot(range(10),'go-') axes[3].plot(range(10),'mo-') plt.show()
练习
调整子图之间的距离
import matplotlib.pyplot as plt import numpy as np import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] mpl.rcParams['axes.unicode_minus'] = False fig, axes = plt.subplots(2,2,sharex=True, sharey=True ) for i in range(2): for j in range(2): axes[i,j].plot(np.random.randn(10), color='g', alpha=0.75) #调整子图之间的距离 plt.subplots_adjust(wspace = 0.1,hspace = 0.1) fig.suptitle('test', fontsize=20) plt.savefig('调整距离.jpg',dpi = 50) #调整分辨率 plt.show()