python画图
在做数据分析时,有时需要画图,但是苦于在网上搜python画图时,详细的教程非常多,但是就是找不到能马上解决自己问题那一行代码,所以这里记录一下能够适合需求简单的应急方法。
设置标题、中文标题
首先为了举例构造两个list:
mport matplotlib.pyplot as plt list1=[1,2,3,4,5,6,2,3,4,6,7,5,7] list2=[2,3,4,5,8,9,2,1,3,4,5,2,4]
画图:
plt.plot(list1) plt.plot(list2) plt.show()
设置标题:
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.title('显示中文标题') plt.plot(list1) plt.plot(list2) plt.show()
完整代码:
import matplotlib.pyplot as plt list1=[1,2,3,4,5,6,2,3,4,6,7,5,7] list2=[2,3,4,5,8,9,2,1,3,4,5,2,4] plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.title('显示中文标题') plt.plot(list1) plt.plot(list2) plt.show()
给横纵坐标命名、设置横坐标刻度、间距、起始位置
横纵坐标命名:
plt.xlabel("横坐标") plt.ylabel("纵坐标")
设置横坐标从0开始,间隔为1:
my_x_ticks = np.arange(0, 13, 1)#原始数据有13个点,故此处为设置从0开始,间隔为1 plt.xticks(my_x_ticks)
设置横坐标从1开始,间隔为1:
x=np.arange(0,len(list1))+1 x[0]=1 my_x_ticks = np.arange(1, 14, 1) plt.xticks(my_x_ticks) plt.plot(x,list1) plt.plot(x,list2)
完整代码:
import matplotlib.pyplot as plt import numpy as np list1=[1,2,3,4,5,6,2,3,4,6,7,5,7] list2=[2,3,4,5,8,9,2,1,3,4,5,2,4] plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.title('显示中文标题') plt.xlabel("横坐标") plt.ylabel("纵坐标") x=np.arange(0,len(list1))+1 x[0]=1 my_x_ticks = np.arange(1, 14, 1) plt.xticks(my_x_ticks) plt.plot(x,list1) plt.plot(x,list2) plt.show()
添加图例、网格
添加图例:
图例是用来表示图中对应的线的含义,关键代码:
x=np.arange(0,len(list1))+1 x[0]=1 my_x_ticks = np.arange(1, 14, 1) plt.xticks(my_x_ticks) plt.plot(x,list1,label='list1')#添加label设置图例名称 plt.plot(x,list2,label='list2')#添加label设置图例名称 plt.legend()
对应线的颜色也是可以设置的,一般用默认的即可。
添加网格:
添加网格可以让图更清晰。关键代码:
plt.grid()
完整代码:
import matplotlib.pyplot as plt import numpy as np list1=[1,2,3,4,5,6,2,3,4,6,7,5,7] list2=[2,3,4,5,8,9,2,1,3,4,5,2,4] plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.title('显示中文标题') plt.xlabel("横坐标") plt.ylabel("纵坐标") x=np.arange(0,len(list1))+1 x[0]=1 my_x_ticks = np.arange(1, 14, 1) plt.xticks(my_x_ticks) plt.plot(x,list1,label='list1')#添加label设置图例名称 plt.plot(x,list2,label='list2')#添加label设置图例名称 plt.legend() plt.grid()#添加网格 plt.show()
线条颜色、大小、类型:点、虚线等
线条颜色设置:
比如此处我需要把我图中两根线设置为绿色和蓝色,关键代码:
plt.plot(x,list1,label='list1',color='g')#添加color设置线条颜色 plt.plot(x,list2,label='list2',color='b')
线条大小:
比如设置蓝线粗一些,绿线细一些,关键代码:
plt.plot(x,list1,label='list1',color='g',linewidth=1)#添加linewidth设置线条大小 plt.plot(x,list2,label='list2',color='b',linewidth=5)
线条类型:
比如设置蓝线用虚线表示,绿线用点线表示,关键代码:
plt.plot(x,list1,label='list1',color='g',linewidth=2,linestyle=':')#添加linestyle设置线条类型 plt.plot(x,list2,label='list2',color='b',linewidth=5,linestyle='--')
完整代码:
import matplotlib.pyplot as plt import numpy as np list1=[1,2,3,4,5,6,2,3,4,6,7,5,7] list2=[2,3,4,5,8,9,2,1,3,4,5,2,4] plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.title('显示中文标题') plt.xlabel("横坐标") plt.ylabel("纵坐标") x=np.arange(0,len(list1))+1 x[0]=1 my_x_ticks = np.arange(1, 14, 1) plt.xticks(my_x_ticks) plt.plot(x,list1,label='list1',color='g',linewidth=2,linestyle=':')#添加linestyle设置线条类型 plt.plot(x,list2,label='list2',color='b',linewidth=5,linestyle='--') plt.legend() plt.grid()#添加网格 plt.show()
matplotlib颜色表:
替换上文对应的代码即可,
matplotlib线段类型大全:
标记、marker、设置标记大小、marker符号大全
设置标记:
有时候我们希望给图上的每个点做标记,可以更直观的看到标记点,关键代码:
plt.plot(x,list1,label='list1',marker = "o",markersize=10)#marker设置标记形状 markersize设置标记大小 plt.plot(x,list2,label='list2',marker = "x",markersize=8)
完整代码:
import matplotlib.pyplot as plt import numpy as np list1=[1,2,3,4,5,6,2,3,4,6,7,5,7] list2=[2,3,4,5,8,9,2,1,3,4,5,2,4] plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.title('显示中文标题') plt.xlabel("横坐标") plt.ylabel("纵坐标") x=np.arange(0,len(list1))+1 x[0]=1 my_x_ticks = np.arange(1, 14, 1) plt.xticks(my_x_ticks) plt.plot(x,list1,label='list1',marker = "o",markersize=10)#marker设置标记形状 markersize设置标记大小 plt.plot(x,list2,label='list2',marker = "x",markersize=8) plt.legend() plt.grid()#添加网格 plt.show()
matplotlib库marker表:
在代码里输入对应的符号或字母即可,