python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)

折线图绘制

流程: 1、先导入相关包:from matplotlib import pyplot as plt 或者import matplotlib.pyplot as plt; 2、传入相关x,y的值,使用plot(x,y)来绘制折线图;在这一步可以设置具体细节的值,比如线条样式、宽度、颜色、透明度等等; 折线设置具体代码:plt.plot(x,y,color="green",alpha=0.5,linestyle="-",linewidth=3) 折点设置具体代码:plt.plot(x,y,marker="o",color="g",markersize=20,markeredgecolor="b",markeredgewidth=5) 3、使用plt.show来展示绘制图形;

设置图片的大小和保存;
from matplotlib import pyplot as plt import random x=range(2,26,2) y=[random.randint(15,30)for i in x] #设置图片的大小: plt.figure(figsize=(20,8),dpi=80)#调整图片的大小与参数,分辨率等等; plt.plot(x,y) plt.show() plt.savefig("./t5.png")#保存图片

设置x轴和y轴的刻度标签(包括范围大小,方向、单位,最大最小值等)
#设置x轴和y轴的刻度: from matplotlib import pyplot as plt x=range(2,26,2) y=[random.randint(15,30)for i in x]plt.figure(figsize=(20,8),dpi=80)#设置x轴的刻度: plt.xticks(x) plt.xticks(range(1,25)) plt.yticks(y) plt.yticks(range(min(y),max(y)+1))#设置x轴的刻度标签: x_ticks_label=["{}:00".format(i)for i in x] plt.xticks(x,x_ticks_label,rotation=45) #设置y轴的刻度标签: y_ticks_label=["{}c".format(i) for i in range(min(y),max(y)+1)] plt.yticks(range(min(y),max(y)+1),y_ticks_label)plt.plot(x,y) plt.show()

输出:
python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)
文章图片

设置显示中文:包括x轴和y轴,以及标题,需要首先导入字体管理模块,并找到自己电脑上的字体路径,最后再来对x轴和y轴的标题以及图表标题进行字体颜色、方向设置等
#设置显示中文: from matplotlib import pyplot as plt import matplotlib import random x=range(0,120) y=[random.randint(10,30)for i in range(120)] #设置画布的大小和分辨率: plt.figure(figsize=(20,8),dpi=80) plt.plot(x,y) #导入字体管理模块:并找到自己电脑上的字体路径: from matplotlib import font_manager my_font=font_manager.FontProperties(fname="C:/Windows/Fonts/STFANGSO.TTF",size=18) #设置x轴,并将字体旋转45度; plt.xlabel("时间",fontproperties=my_font) #设置y轴: plt.ylabel("次数",fontproperties=my_font) #设置标题: plt.title("每分钟跳动次数",color="red",fontproperties=my_font) #绘制图形: plt.show()

输出:
python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)
文章图片

一图多线:两个轴的设置,以及网格、图例、字体;
y1=[1,2,3,5,4,3,6,7,8,6] y2=[1,2,2,1,3,5,4,7,5,8] x=range(1,11) plt.figure(figsize=(20,8),dpi=80)plt.plot(x,y1,color="r",label="A部门") plt.plot(x,y2,color="b",label="B部门")#设置x轴刻度:显示格式、字体、旋转方向; xtick_labels=["第{}周".format(i) for i inx] my_font=font_manager.FontProperties(fname="C:/Windows/Fonts/STFANGSO.TTF",size=18) plt.xticks(x,xtick_labels,fontproperties=my_font,rotation=45)#绘制网格:透明度 plt.grid(alpha=0.4)#设置图例:包括字体,位置等; plt.legend(prop=my_font,loc="upper right")#绘制图形: plt.show()

输出:
python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)
文章图片

一图多个子图:包括子图的字体大小,透明度设置;子图的位置 ,具体图形的内容;
#设置一个图多个坐标子系;采用add_subplot系列; import numpy as np import matplotlib.pyplot as plt x=np.arange(1,100)#先设置好子图的字体大小,透明度; fig=plt.figure(figsize=(20,10),dpi=80)#新建子图1: ax1=fig.add_subplot(2,2,1) ax1.plot(x,x) #新建子图2: ax2=fig.add_subplot(2,2,2) ax2.plot(x,x**2) ax2.grid(color="r",linestyle="--",linewidth=1,alpha=0.3) #新建子图3: ax3=fig.add_subplot(2,2,3) ax3.plot(x,np.log(x))#绘制图形: plt.show()

输出:
python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)
文章图片

设置坐标范围:
import matplotlib.pyplot as plt import numpy asnp x=np.arange(-10,11,1) y=x**2 plt.plot(x,y) #可以调整x,y的起点: plt.xlim(xmin=0) plt.ylim(ymin=0) plt.show()

输出:
python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)
文章图片

改变坐标轴 的默认显示方式:
import matplotlib.pyplot as plt import numpy as np y=range(0,14,2) x=[-3,-2,-14,0,1,2,3] ax=plt.gca()#获取当前图表的图像: #设置图形的包围线: ax.spines["right"].set_color("none") ax.spines["top"].set_color("none") ax.spines["bottom"].set_color("blue") ax.spines["left"].set_color("red") #设置底边的移动范围,移动到y轴的0位置; ax.spines["bottom"].set_position(("data,0")) ax.spines["left"].set_position(("data,1")) plt.plot(x,y) plt.show()

绘制散点图:
#绘制散点图: frommatplotlib import pyplot as plt from matplotlib import font_manager import numpy as np y=[11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,19,21,22,22,22,23,24] x=range(1,32)#设置图形大小: plt.figure(figsize=(20,8),dpi=80) #使用scatter绘制散点图: size=np.random.randint(0,100,31) plt.scatter(x,y,label="3月份",alpha=0.5,s=size,c="g")#绘制x轴的刻度: my_font=font_manager.FontProperties(fname="C:/Windows/Fonts/STFANGSO.TTF",size=18) _xticks_labels=["3月{}日".format(i)for i in x] plt.xticks(x[::3],_xticks_labels[::3],fontproperties=my_font)#绘制y轴的刻度: _yticks_labels=["{}c".format(i)for i in range(min(y),max(y)+1)] plt.yticks(range(min(y),max(y)+1),_yticks_labels)#绘制坐标轴标题: plt.xlabel("日期",fontproperties=my_font) plt.ylabel("温度",fontproperties=my_font)#绘制图例: plt.legend(prop=my_font) plt.show()#绘制流程:导入相关的库和包-得到x和y的值-设置图形的大小 #-使用scatter绘制图形并设置具体的一些值-绘制x轴和y轴的刻度、显示格式、设置字体、显示范围 #-绘制坐标轴标题-绘制图例;

输出:
python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)
文章图片

绘制条形图:导入相关模块—数据准备—字体设置—设置图片大小—绘制图形,调整图形中的参数
—设置x轴和y轴刻度值—给图形加上标注—展示绘制的图形
from matplotlib import pyplot as plt from matplotlib import font_manager a=["流浪地球","疯狂的外星人","飞驰人生","大黄蜂","熊出没.原始时代","新喜剧之王"] b=[38.13,19.85,14.89,11.36,6.47,5.93] my_font=font_manager.FontProperties(fname="C:/Windows/Fonts/STFANGSO.TTF",size=18)plt.figure(figsize=(20,8),dpi=80) #绘制条形图 rects=plt.bar(a,[float(i) for i in b],width=0.3,color=["r","g","b","r","g","b"]) plt.xticks(range(len(a)),a,fontproperties=my_font) plt.yticks(range(0,41,5),range(0,41,5))#给图形加上标注(水平居中) for rect in rects: height=rect.get_height() plt.text(rect.get_x()+rect.get_width()/2,height+0.3,str(height),ha="center") plt.show()

输出:
python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)
文章图片

绘制横向条形图:
from matplotlib import pyplot as plt from matplotlib import font_manager a=["流浪地球","疯狂的外星人","飞驰人生","大黄蜂","熊出没.原始时代","新喜剧之王"] b=[38.13,19.85,14.89,11.36,6.47,5.93] my_font=font_manager.FontProperties(fname="C:/Windows/Fonts/STFANGSO.TTF",size=18)plt.figure(figsize=(20,8),dpi=80)plt.barh(range(len(a)),b,height=0.5,color=["r","g","b","r","g","b"]) plt.yticks(range(len(a)),a,fontproperties=my_font,rotation=45)#给图形加上标注: for rect in rects: width=rect.get_width() plt.text(width,rect.get_y()+0.3/2,str(width),va="center") plt.show()

输出 :
python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)
文章图片

并列条形图:
from matplotlib import pyplot as plt import numpy as np index=np.arange(4) BJ=[50,55,53,60] SH=[44,66,55,41] #并列 plt.bar(index,BJ,width=0.3) plt.bar(index+0.3,SH,width=0.3,color="green") plt.xticks(index+0.3/2,index) plt.show()

python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)
文章图片

堆叠条形图 :
from matplotlib import pyplotas plt import numpy as np index=np.arange(4) BJ=[50,55,53,60] SH=[44,66,55,41] #并列 plt.bar(index,BJ,width=0.3) plt.xticks(index+0.3/2,index) plt.bar(index,SH,bottom=BJ,width=0.3,color="green") plt.show()

python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)
文章图片

绘制直方图:
流程:先导入需要的库和包—生成数据—绘制直方图—显示横轴、纵轴标签—显示图表标题—图表展示
from matplotlib import pyplot as plt import numpy as np import matplotlib#设置matplotlib正常显示中文和负号: matplotlib.rcParams["font.sans-serif"]=["SimHei"]#用黑体显示中文 matplotlib.rcParams["axes.unicode_minus"]=False#正常显示负号#随机生成(10000,)服从正态分布的数据: data=https://www.it610.com/article/np.random.randn(10000)#绘制直方图: plt.hist(data,bins=40,normed=0,facecolor="blue",edgecolor="black",alpha=0.7)#显示横轴标签: plt.xlabel("区间")#显示纵轴标签 plt.ylabel("频数/频率")#显示图表标题: plt.title("频数/频率分布直方图")plt.show()

python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)
文章图片

绘制饼图:
导入相关模块—设置字体—准备数据、以及具体设置
—绘制饼图—图形大小设置—具体细节:角度、颜色设计—图例设置:位置/字体—绘制展示
from matplotlib import pyplot as plt import numpy as np from matplotlib import font_managermy_font=font_manager.FontProperties(fname="C:/Windows/Fonts/STFANGSO.TTF",size=10)label_list=["第一部分","第二部分","第三部分"] size=[55,35,10] color=["r","g","b"] explode=[0,0.05,0]plt.figure(figsize=(20,8),dpi=100) patches,l_text,p_text=plt.pie(size, explode=explode, colors=color, labels=label_list, labeldistance=1.1, autopct="%1.1f%%", shadow=False, startangle=90, pctdistance=0.6 ) for t in l_text: print(dir(t)) t.set_fontproperties(my_font) for t in p_text: t.set_size(18) for i in patches: i.set_color("pink") break plt.legend(prop=my_font,loc="upper right") plt.show()

输出:
python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)
文章图片

实现饼图特效——增加阴影效果和破裂效果;
from matplotlib import pyplot as plt from matplotlib import font_manager my_font=font_manager.FontProperties(fname="C:/Windows/Fonts/STFANGSO.TTF",size=14) x=[15,30,45,10] label_list=["Frogs","Hogs","Dogs","Logs"] color=["blue","orange","green","red"] explode=[0,0.09,0,0] plt.figure(figsize=(15,15),dpi=100) patches,l_text,p_text=plt.pie(x, explode=explode, colors=color, labels=label_list, labeldistance=1.1, autopct="%1.1f%%", shadow=True, startangle=90, pctdistance=0.6 ) plt.legend(prop=my_font,loc="upper right") plt.show()

【python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)】输出:
python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)
文章图片

    推荐阅读