python可视化图表

文章目录

  • 制作折线图并且保存至桌面
  • 柱状图
  • 簇状条形图
  • 堆积柱形图
  • 堆积图
  • 制作堆积柱形图
  • 绘制条形图
  • 散点图
  • 绘制气泡图
  • 绘制面积图
  • 绘制树地图
  • 绘制雷达图
  • 绘制箱型图
  • 绘制饼图
  • 绘制环形图
  • 绘制水平线和垂直线
  • 直线
  • 绘制组合图表---折线图+折线图
  • 折线图+柱形图
  • 绘制双y轴图表
  • 绘制双y轴图表
  • 绘制双x轴图表
  • 图表的其他样式
  • 使用新样式的方式

制作折线图并且保存至桌面

import matplotlib.pyplot as plt
import numpy as np
#没有以下两句,就不会显示中文,识别不出来
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.subplot(1,1,1)
x=np.array([1,2,3,4,5,6,7,8,9])
y=np.array([886,2335,5710,6482,6120,1605,3813,4428,4361])
plt.plot(x,y,color='k',linestyle='dashdot',linewidth=1,marker='o',markersize=5,label='1-9月注册用户数') #绘图

plt.title('1-9月用户注册量',loc='center')#设置标题,标题名及标题的位置
plt.grid(True)#设置网格线
plt.legend()#设置图例,调用显示出plot中的lable值
for a,b in zip(x,y):
    plt.text(a,b,b,ha='center',va='bottom',fontsize=10) 
    #添加数据标签,数据标签的位置,文字大小,注意第二个b表示显示y值


plt.savefig(r'D:\Users\ctrip\Desktop\plot.jpg') #保存图表至桌面

运行上面代码就会输出图表并且保存至桌面喽~
python可视化图表_第1张图片

柱状图

#柱状图

#plt.bar(x,y,height,width=0.8,bottom=None,align='center',color,edgecolor)
#height:表示每根柱子的高度
#width:表示每根柱子的宽度,可以一样 也可以不一样
#bottom:表示每根柱子的底部位置,每根柱子的底部位置可以都一样,也可以不同
#align:表示柱子的位置与x值的关系,有center,edge两个参数可选;
#color:柱子颜色
#edgecolor:柱子边缘的颜色

import matplotlib.pyplot as plt
import numpy as np
#没有以下两句,就不会显示中文,识别不出来
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.subplot(1,1,1)
x=np.array(['东区','西区','南区','北区'])
y=np.array([8566,6482,5335,7310])
plt.bar(x,y,width=0.5,align='center',label='任务量555',color='m')#柱状图
plt.title('全国各分区任务量',loc='center')#标题
for a,b in zip(x,y):
    plt.text(a,b,b,ha='center',va='bottom',fontsize=12)#数据标签
plt.xlabel('分区')#轴名称
plt.ylabel('任务量222')
plt.legend()#图例
plt.savefig(r'D:\Users\ctrip\Desktop\图表\bar.jpg')#保存图片

python可视化图表_第2张图片

簇状条形图

#制作簇状条形图:注意第二个y的x在做条形图以及添加数据标签时,都需要增加1个y的宽度
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.subplot(1,1,1)
x=np.array([1,2,3,4])
y1=np.array([8566,5335,7310,6482])
y2=np.array([4283,2667,3655,3241])

plt.bar(x,y1,width=0.3,label='任务量5555')  #y1正常
plt.bar(x+0.3,y2,width=0.3,label='完成量5555')#y2的x在原来基础上+y1的宽度

plt.title("完成情况",loc='center')
plt.xlabel('区域')
plt.ylabel('任务情况')
for a,b in zip(x,y1):
    plt.text(a,b,b,ha='center',va='bottom',fontsize=12)
for a,b in zip(x+0.3,y2):
    plt.text(a,b,b,ha='center',va='bottom',fontsize=12)  #y2的x在原来基础上+y1的宽度

plt.xticks(x+0.15,['东区','西区','南区','北区'])  #重新编辑x轴的刻度,注意每相隔了3个y的宽度
plt.grid(False)
plt.legend()
plt.savefig(r'D:\Users\ctrip\Desktop\图表\bar2.jpg')

python可视化图表_第3张图片

堆积柱形图

#制作堆积柱形图
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.subplot(1,1,1)
x=np.array(['东区','西区','南区','北区'])
y1=np.array(['8856,6584,5335,7310'])
y2=np.array(['4283,3241,2667,3555'])

plt.bar(x,y1,width=0.5,label='任务量',align="center")
plt.bar(x,y2,width=0.5,label='完成量',bottom=y1,align="center")

for a,b in zip(x,y1):
    plt.text(a,b,b,ha='center',va='bottom',fontsize=13)
for a,b in zip(x,y2):
    plt.text(a,b,b,ha='center',va='bottom',fontsize=13)

plt.title("完成情况",loc='center')
plt.xlabel("区域")
plt.ylabel("任务情况")

plt.grid(False)
plt.legend(loc='upper center',ncol=2)
plt.savefig(r'D:\Users\ctrip\Desktop\图表\bar堆积图.jpg')

python可视化图表_第4张图片

堆积图

#堆积图
import matplotlib.pyplot as plt
import matplotlib as mpl

mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False

x = [1, 2, 3, 4, 5]
y = [6, 10, 4, 5, 1]
y1 = [2, 6, 3, 8, 5]

plt.bar(x, y, align="center", color="#66c2a5", tick_label=["A", "B", "C", "D", "E"], label="班级A")
plt.bar(x, y1, align="center", bottom=y, color="#8da0cb", label="班级B")

plt.xlabel("测试难度")
plt.ylabel("试卷份数")

plt.legend()

plt.show()

python可视化图表_第5张图片

制作堆积柱形图

#制作堆积柱形图
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.subplot(1,1,1)
x=np.array(['东区','西区','南区','北区'])
y3=np.array([8856,6584,5335,7310])
y4=np.array([4283,3241,2667,3555])

plt.bar(x,y3,width=0.5,label='任务量',align="center")
plt.bar(x,y4,width=0.5,label='完成量',bottom=y3,align="center")  #堆积图增加bottom=y的代码

for a,b in zip(x,y3):
    plt.text(a,b,b,ha='center',va='bottom',fontsize=13)   #ha可选(center.left,right)
for a,b in zip(x,y4):
    plt.text(a,b,b,ha='center',va='top',fontsize=13)    #va可选(center,top,bottom)

plt.title("完成情况",loc='center')
plt.xlabel("区域")
plt.ylabel("任务情况")

plt.grid(False)
plt.legend(loc='upper center',ncol=2)  #legend图例位置有很多可以选,可以是“best”
plt.savefig(r'D:\Users\ctrip\Desktop\图表\bar堆积图.jpg')

python可视化图表_第6张图片

绘制条形图

#绘制条形图
#plt.barh(y,width,height,align,color,edgecolor)
import matplotlib.pyplot as plt
import numpy as np

x=np.array(['东区','西区','南区','北区'])
y=np.array([8856,6584,5335,7310])

plt.barh(x,width=y,height=0.5,align='edge')   #注意是height,align表示柱子的对齐方式,有center和edge两个值可以选
#选择edge之后可以看到轴的刻度值没有在柱子的中间位置
plt.title("各区域任务量",loc='center')
plt.ylabel("区域")
plt.xlabel("任务量22")

for  a,b in zip(x,y):
    plt.text(b,a,b,ha='right',va='center',fontsize=13)  #注意是bab,最后一个字母是显示值的轴

plt.grid(False)
plt.savefig(r'D:\Users\ctrip\Desktop\图表\bar堆积图.jpg')

python可视化图表_第7张图片

散点图

#散点图
#plt.scatter(x,y,s,c,marker,linewidth,edgecolors)
#s:表示每个点的面积,即散点的大小。如果只有一个具体值,则所有点的大小都一样。
#s也可以是动态值,每个点的大小不一样 就成了气泡图
#c:表示每个点的颜色,如果只有一种颜色,则所有点的颜色都相同
#c也可以是动态颜色值,让不同点的颜色不同

#marker:标记类型
#linewidths:表示每个散点的线宽
#edgecolors:表示每个散点外轮廓的颜色


import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.subplot(1,1,1)
x=[5.5,6.1,8.1,15.8,19.5,22.4,28.3,29.8]
y=[2.68,3.85,4.41,5.67,5.44,6.03,8.15,6.87]

plt.scatter(x,y,marker='o',s=200)  #标记类型以及标记大小
plt.title("1-8月平均气温与啤酒销量关系图",loc="center")

plt.xlabel("平均气温")
plt.ylabel("啤酒销量")

plt.grid(False)#网格线

plt.savefig(r'D:\Users\ctrip\Desktop\图表\scatter散点图.jpg')

python可视化图表_第8张图片

绘制气泡图

#绘制气泡图.气泡图与散点图类似。
#气泡图的大小不一样;散点图的大小是一样的。
#注意:气泡图是三维的还是二维的? 我个人认为可以画三维。但以下例子是二维的

import matplotlib.pyplot as plt
import numpy as np

plt.subplot(1,1,1)

x=np.array([5.5,6.1,8.1,15.8,19.5,22.4,28.3,29.8])
y=np.array([2.68,3.85,4.41,5.67,5.44,6.03,8.15,6.87])

area=y*100
color=y*100

plt.scatter(x,y,s=area,c=color)

for a,b in zip(x,y):
    plt.text(a,b,b,ha='center',va='bottom',fontsize=8,color="white")

plt.xlabel("平均气温")
plt.ylabel("啤酒销量")

plt.title("销量关系图",loc='center')

plt.savefig(r'D:\Users\ctrip\Desktop\图表\scatter散点图.jpg')

python可视化图表_第9张图片

绘制面积图

#绘制面积图。面积图与折线图的对比是类似的。
# plt.stackplot(x,y,labels,colors)
#labels:不同系列图表的图例名   因为面积图是两个图例所以用复数
#colors:不同系列图表的颜色

import numpy as np
import matplotlib.pyplot as plt

plt.subplot(1,1,1)

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,3060,802,1906,2241,2315])

labels=["注册人数","激活人数"]
plt.stackplot(x,y1,y2,labels=labels,colors=["yellow","blue"])  
#如果labels写成单数会报错;colors写成单数只显示一个图

plt.xlabel("月份")
plt.ylabel("注册与激活人数")

plt.title("销量关系图",loc='center')

plt.savefig(r'D:\Users\ctrip\Desktop\图表\stackplot.jpg')

python可视化图表_第10张图片

绘制树地图

#绘制树地图  树地图常用来表示统一等级中不同类别的占比关系,使用squarify库。先pip install squarify
#squarify.plot(sizes,label,color,value,edgecolor,linewidth)

#sizes:待绘图数据  label:不同类别的图例标签  color:不同类别的颜色  value:不同类别的数据标签
#edgecolor:不同类别之间边框的颜色   linewidth:边框线宽

import squarify
size=np.array([0.34,0.693,0.585,0.57,0.562,0.531,0.530,0.524,0.501,0.478,0.468,0.4361])
xingzuo=np.array(["未知",'摩羯座','天秤座','双鱼座','天蝎座','金牛座','处女座','双子座','射手座','水瓶座','白羊座'])
rate=np.array([0.34,0.693,0.585,0.57,0.562,0.531,0.530,0.524,0.501,0.478,0.468,0.4361])
colors=['steelblue','#9999ff','red','indianred','green','yellow','orange']

plot=squarify.plot(sizes=size,label=xingzuo,color=colors,value=rate,edgecolor='white',linewidth=3)

#plt.title("星座分布",loc='center')
plt.title("星座分布",fontdict={'fontsize':12})  
plt.axis('off')  #去除坐标轴

#plt.tick_params(top=True,right=True)
plt.tick_params(top=False,right=False)  #去除上边框和右边框的刻度

plt.savefig(r'D:\Users\ctrip\Desktop\图表\squarifyplot.jpg')

python可视化图表_第11张图片

绘制雷达图

#绘制雷达图   这个需要调试一下
#用来综合评价某一事物,直观看出事物的优势与不足。使用plt库中的polar方法,polar是用来建立极坐标系的
#雷达图就是将各个点展示在极坐标系中,然后用线将各点连接起来。
#plt.polar(theta,r,color,marker,linewidth)
#theta:每一点在极坐标系中的角度
#r:每一点在极坐标系中的半径
#color:连接个点之间线的颜色
#marker:每点的标记物
#linewidth:连接物的宽度
plt.subplot(111,polar=True)  #参数polar等于true表示建立一个极坐标系
datalenth=5  #把圆均分成5份
angles=np.linspace(0.2*np.pi,datalenth,endpoint=False)
#np.linspace表示在制定的间隔内返回均匀间隔的数字
labels=['沟通能力','业务理解能力','逻辑思维能力','快速学习能力','工具使用能力']
data=[2,3.5,4,4.5,5]
data=np.concatenate((data,[data[0]]))#闭合
angels=np.concatenate((angles,[angles[0]]))#闭合

#绘图
plt.polar(angles,data,color='r',marker='o')

#设置x轴刻度
plt.xticks(angles,labels)
plt.title(s="某数据分析师的综合评级")

plt.savefig(r'D:\Users\ctrip\Desktop\图表\polarplot.jpg')




python可视化图表_第12张图片

绘制箱型图

#绘制箱型图  反映一组数据的离散情况
#plt.boxplot(x,vert,widths,labels)
#vert:箱型图方向。true为纵向 false为横向。默认true
#widths:箱型图宽度
#labels:箱型图标签

plt.subplot(1,1,1)
y1=np.array([866,2335,5710,6482,6120,1605,3813,4428,4631])
y2=np.array([433,1167,2855,3241,3606,820,1906,2214,2315])
x=[y1,y2]

labels=["注册人数","激活人数"]
plt.boxplot(x,labels=labels,vert=True,widths=[0.3,0.2])

plt.title("1-9月注册与激活人数",loc="right")

plt.grid(False)
plt.savefig(r'D:\Users\ctrip\Desktop\图表\boxplot.jpg')

python可视化图表_第13张图片

绘制饼图

#绘制饼图  表示同一等级中不同类别的占比情况  
#plt.pie(x,explode,labels,colors,autopct,pctdistance,shadow,
#labeldistance,starangle,radius,counterclock,wedgeprops,textprops,center,frame)
#待绘图数据,饼图中每一块离圆心距离,每一块标签,颜色,百分比格式,数据标签距中心的距离,是否有阴影
#每一块索引距离中心的距离 饼图的初始角度 饼图的半径 是否让饼图逆时针显示 饼图外边界属性 饼图中文本相关属性 饼图中心位置 是否显示饼图背后的的图框

plt.subplot(1,1,1)

x=np.array([8566,5335,7310,6482])

labels=["东区","北区","南区","西区"]  
colors='lightgreen','gold','lightskyblue','lightcoral'
explode=[0.05,0,0,0]  #让第一块离圆心远一点
labeldistance=1  #每一块索引离中心的距离
plt.pie(x,labels=labels,colors=colors,autopct='%.0f%%',shadow=True,explode=explode,radius=0.5,labeldistance=labeldistance,startangle=-50)
#保留0位小数,3个%;有阴影;半径;初始角度
plt.axis('equal')
plt.title("全国各区域任务量占比",loc="center")

plt.savefig(r'D:\Users\ctrip\Desktop\图表\pie.jpg')

python可视化图表_第14张图片

import matplotlib.pyplot as plt

labels='a','b','c','d'

sizes=5,6,7,8



explode=0,0,0,0

plt.pie(sizes,explode=explode,labels=labels,

        colors=colors,autopct='%1.1f%%',shadow=True,startangle=50)

plt.axis('equal')

plt.show()

python可视化图表_第15张图片

绘制环形图

#绘制环形图  参数与饼图完全一致

plt.subplot(1,1,1)

x1=np.array([8566,5335,7310,6485])
x2=4283,2667,3655,3241
labels="东区","北区","南区","西区"
plt.pie(x1,labels=labels,radius=1.0,wedgeprops=dict(width=0.5,edgecolor='w'))
plt.pie(x2,labels=labels,radius=0.5,wedgeprops=dict(width=0.3,edgecolor='w'))

#添加注释(完成量 任务量)
plt.annotate("完成量",xy=(0.35,0.35),xytext=(0.7,0.45),arrowprops=dict(facecolor="black",arrowstyle="->"))
plt.annotate("任务量",xy=(0.75,0.20),xytext=(1.1,0.2),arrowprops=dict(facecolor="black",arrowstyle="->"))

plt.title("全国各区域任务量与完成量占比",loc="center")
plt.savefig(r'D:\Users\ctrip\Desktop\图表\pie2.jpg')

python可视化图表_第16张图片

绘制水平线和垂直线

#绘制热力图
#绘制水平线和垂直线
#plt.axhline(y,xmin,xmax)  y=2  时x的最大和最小值XXXXXXXXX 错错错     min max指的是比例,而不是实际像素值
#plt.axvline(x,ymin.ymax)

plt.subplot(1,2,1)
plt.xlim(0,5)            #???????????????
#python横坐标轴已经设置了0-5的范围,x在0.2-0.5的直线的位置为啥显示错了,下一行是答案
#
plt.axhline(y=2,xmin=0.2,xmax=0.3)
plt.subplot(1,2,2)
plt.ylim(0,5)
plt.axvline(x=2,ymin=0,ymax=1)


python可视化图表_第17张图片

直线

plt.subplot(2,2,1)
plt.axhline(y=0.5,c='r',ls='--',lw=2)

python可视化图表_第18张图片

绘制组合图表—折线图+折线图

#绘制组合图表---折线图+折线图
plt.subplot(1,1,1)
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,3060,802,1906,2214,2315])


plt.plot(x,y1,label="注册人数",linestyle="solid",linewidth=1,marker="o",markersize=3)
plt.plot(x,y2,label="激活人数",linestyle="dashdot",linewidth=1,marker="o",markersize=3)

plt.title("1-9月注册与激活人数")

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)

plt.xlabel("月份")
plt.ylabel("注册量")

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.savefig(r'D:\Users\ctrip\Desktop\图表\plot双折线.jpg')

python可视化图表_第19张图片

折线图+柱形图

#折线图+柱形图

plt.subplot(1,1,1)

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,3060,802,1906,2214,2315])


plt.plot(x,y1,label="注册人数",linestyle="solid",linewidth=1,marker="o",markersize=3)
plt.bar(x,y2,label="激活人数")

plt.title("1-9月注册与激活人数")

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)

plt.xlabel("月份")
plt.ylabel("注册量")

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.savefig(r'D:\Users\ctrip\Desktop\图表\plot+bar.jpg')

python可视化图表_第20张图片

绘制双y轴图表

#绘制双y轴图表   是一个坐标系中有两条y轴,使用的是plt库的twinx方法。
#先建立坐标系,然后绘制主坐标轴上的图表,再调用plt.twinx方法。最后绘制次坐标轴上的图表。

#折线图+柱形图


plt.subplot(1,1,1)

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,3060,802,1906,2214,2315])


plt.plot(x,y1,label="注册人数",linestyle="solid",linewidth=1,marker="o",markersize=3)
plt.xlabel("月份")
plt.ylabel("注册量")
plt.legend(loc="upper left")


plt.twinx() #调用twinx方法

plt.plot(x,y2,color="k",linestyle="dashdot",linewidth=1,marker="o",markersize=3,label="激活人数")
plt.xlabel("月份")
plt.ylabel("注册量")
plt.legend()

plt.title("1-9月注册与激活人数")

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)

plt.xlabel("月份")
plt.ylabel("注册量")

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.savefig(r'D:\Users\ctrip\Desktop\图表\plot+bar.jpg')

python可视化图表_第21张图片

绘制双y轴图表

#绘制双y轴图表

plt.subplot(1,1,1)

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,3060,802,1906,2214,2315])


plt.plot(x,y1,label="注册人数",linestyle="solid",linewidth=1,marker="o",markersize=3)

plt.twinx() #调用twinx方法
plt.bar(x,y2,label="激活人数")

plt.title("1-9月注册与激活人数")

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)

plt.xlabel("月份")
plt.ylabel("注册量")

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.savefig(r'D:\Users\ctrip\Desktop\图表\plot+bar.jpg')

python可视化图表_第22张图片

绘制双x轴图表

#绘制双x轴图表   一个坐标系中有两条x轴,使用plt库的twiny方法,具体流程和双y轴完全一样。但是在业务中使用较少

plt.subplot(1,1,1)

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,3060,802,1906,2214,2315])


plt.plot(x,y1,label="注册人数",linestyle="solid",linewidth=1,marker="o",markersize=3)

plt.twiny() #调用twinx方法
plt.bar(x,y2,label="激活人数")

plt.title("1-9月注册与激活人数")

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)

plt.xlabel("月份")
plt.ylabel("注册量")

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.savefig(r'D:\Users\ctrip\Desktop\图表\plot+bar.jpg')

python可视化图表_第23张图片

图表的其他样式

#matplotlib库默认的样式看起来不好看,但是可以调用其他格式。以下是matplotlib支持的所有样式
plt.style.available

#如果使用以上样式,只要在程序开头加上以下代码
#只要在程序开头指明了哪些样式,那么该程序接下来的所有图表都会使用这种样式
plt.style.use(样式名)
以下都是样式的举例

python可视化图表_第24张图片

使用新样式的方式

plt.style.use('bmh')
plt.subplot(1,1,1)

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,3060,802,1906,2214,2315])


plt.plot(x,y1,label="注册人数",linestyle="solid",linewidth=1,marker="o",markersize=3)

plt.twiny() #调用twinx方法
plt.bar(x,y2,label="激活人数")

plt.title("1-9月注册与激活人数")

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)

plt.xlabel("月份")
plt.ylabel("注册量")

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.savefig(r'D:\Users\ctrip\Desktop\图表\plot+bar.jpg')

–以上图表代码参考了张俊红书籍
《对比excel,学习python数据分析》
受益匪浅。

你可能感兴趣的:(Python)