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绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)_第1张图片

设置显示中文:包括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绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)_第2张图片
一图多线:两个轴的设置,以及网格、图例、字体;

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 in  x]
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绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)_第3张图片
一图多个子图:包括子图的字体大小,透明度设置;子图的位置 ,具体图形的内容;

#设置一个图多个坐标子系;采用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绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)_第4张图片

设置坐标范围:

import matplotlib.pyplot as plt 
import numpy as  np
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绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)_第5张图片
改变坐标轴 的默认显示方式:

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()

绘制散点图:

#绘制散点图:
from  matplotlib 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绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)_第6张图片
绘制条形图:导入相关模块—数据准备—字体设置—设置图片大小—绘制图形,调整图形中的参数
—设置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绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)_第7张图片

绘制横向条形图:

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绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)_第8张图片

并列条形图:

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绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)_第9张图片
堆叠条形图 :

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.xticks(index+0.3/2,index)
plt.bar(index,SH,bottom=BJ,width=0.3,color="green")
plt.show()

python绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)_第10张图片
绘制直方图:
流程:先导入需要的库和包—生成数据—绘制直方图—显示横轴、纵轴标签—显示图表标题—图表展示

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=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绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)_第11张图片
绘制饼图:
导入相关模块—设置字体—准备数据、以及具体设置
—绘制饼图—图形大小设置—具体细节:角度、颜色设计—图例设置:位置/字体—绘制展示

from matplotlib import pyplot as plt 
import numpy as np 
from matplotlib import font_manager

my_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绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)_第12张图片
实现饼图特效——增加阴影效果和破裂效果;

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绘制各种数据可视化图形(饼图、直方图、条形图、折线图、散点图)_第13张图片

你可能感兴趣的:(python练习)