Python数据分析--可视化图表

news/2025/1/13 10:51:04/

绘制常用图表

  • 折线图
  • 柱形图
    • 普通柱形图
    • 簇状柱形图
    • 堆积柱形图
  • 条形图
  • 散点图
  • 气泡图
  • 面积图
  • 树地图
  • 雷达图
  • 箱形图
  • 饼图

折线图

plt.plot(x,y,color,linestyle,linewidth,marker,markeredecolor,markeregwidth,markerfacecolor,markersize,lable)
  • x,y表示x轴和y轴的数据,为必选项
  • color表示折线颜色
  • linestyle表示线的风格
  • linewidth表示线的宽度
  • marker表示折线图中每点的标记物的形状
  • markeredgecolor表示标记外边颜色
  • markeregwidth表示标记外边线宽
  • markerfacecolor表示标记实心颜色
  • markersize表示标记大小
  • lable表示该图的图例名称

实例:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
plt.rcParams['axes.unicode_minus'] = False
%config InlineBackend.figure_format = 'svg'
# 建立一个坐标系
plt.subplot(1,1,1)
# 指明x和y值
x = np.array([1,2,3,4,5,6,7,8,9])
y = np.array([866,2335,5710,6482,6120,1605,3813,4428,4631])
# 绘图
plt.plot(x,y,color = 'k',linestyle = 'dashdot',linewidth = 1,marker = 'o',markersize = 5,label = '注册用户数')
# 设置标题名及标题位置
plt.title('xxx公司1-9月注册用户量',loc ='center' )
# 添加数据标签
for a,b in zip(x,y):plt.text(a,b,b,ha = 'center',va = 'bottom',fontsize = 10)
# 设置网格线
plt.grid(True)
# 设置图例
plt.legend()
# 保存图表到本地
plt.savefig(r'/Users/faye/Desktop/python学习/plot.jpg')

在这里插入图片描述

柱形图

plt.bar(x,height,width = 0.8,bottom = None,align = 'center',color,edgecolor)
  • x表示在哪个位置显示柱形图
  • height表示每根柱子的高度
  • width表示每根柱子的宽度,可以一样,也可以不同
  • bottom表示每根柱子的底部位置,可以一样,也可以不同
  • align表示柱子的位置与x值的关系,有center、edge两个,center表示柱子位于x值中心,edge表示柱子位于x值边缘
  • color表示柱子颜色
  • edgecolor表示柱子边缘的颜色

普通柱形图

# 建立一个坐标系
plt.subplot(1,1,1)
# 指明x,y
x = np.array(['东区','北区','南区','西区'])
y = np.array([8566,6482,5335,7310])
# 绘图
plt.bar(x,y,width = 0.5,align = 'center',label = '任务量')
# 设置标题
plt.title('全国各分区任务量',loc = 'center')
# 添加数据标签
for a,b in zip(x,y):plt.text(a,b,b,ha = 'center',va = 'bottom',fontsize = 12)
# 设置x轴,y轴的名称
plt.xlabel('分区')
plt.ylabel('任务量')
plt.legend()  #显示图例

在这里插入图片描述

簇状柱形图

# 建立一个坐标系
plt.subplot(1,1,1)
# 指明x,y
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 = '任务量')  # 柱形宽度为0.3
plt.bar(x+0.3,y2,width = 0.2,label = '完成量') #柱形宽度为0.2,x+0.3相当于把任务量的每个柱子右移0.3
# 设置标题
plt.title('全国各分区任务量和完成量',loc = 'center')
# 添加数据标签
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)
# 设置x轴,y轴名称
plt.xlabel('区域')
plt.ylabel('任务情况')
# 设置x轴刻度值
plt.xticks(x+0.15,['东区','南区','西区','北区'])
# 设置网格线
plt.grid(True)
# 图例设置
plt.legend()

在这里插入图片描述

堆积柱形图

# 建立坐标系
plt.subplot(1,1,1)
# 指明x,y
x = np.array(['东区','南区','北区','西区'])
y1 = np.array([8566,6482,5335,7310])
y2 = np.array([4283,3241,2667,3655])
# 绘图
plt.bar(x,y1,width = 0.3,label = '任务量')
plt.bar(x,y2,width = 0.3,label = '完成量')
# 设置标题
plt.title('全国各分区任务量和完成量',loc = 'center')
# 添加数据标签
for a,b in zip(x,y1):plt.text(a,b,b,ha = 'center',va = 'bottom' ,fontsize = 12)
for a,b in zip(x,y2):plt.text(a,b,b,ha = 'center',va = 'bottom' , fontsize = 12)
# 设置x轴,y轴名字
plt.xlabel('区域')
plt.ylabel('任务情况')
# 设置图例
plt.legend(loc = 'upper center',ncol = 2)

在这里插入图片描述

条形图

plt.barh(y,width,height,align,color,edgecolor)
  • y表示在什么位置显示柱子,即纵坐标
  • width表示柱子的横向的宽度,即横坐标
  • height表示柱子的纵向的宽度,即柱子的实际宽度
  • align表示柱子的对齐方式
  • color表示柱子的颜色
  • edgecolor表示柱子边缘的颜色
# 建立坐标系
plt.subplot(1,1,1)
#指明x,y
x = np.array(['东区','西区','北区','南区'])
y = np.array([8566,6482,5335,7310])
# 绘图
plt.barh(x,height = 0.5,width = y,align = 'center')
#设置标题
plt.title('全国各区任务量')
# 添加数据标签
for a,b in zip(x,y):plt.text(b,a,b,ha = 'center',va = 'center',fontsize =12)
# 设置x轴,y轴
plt.xlabel('任务量')
plt.ylabel('区域')
# 保存图表到本地
plt.savefig(r'/Users/faye/Desktop/python学习/barh.jpg')

在这里插入图片描述

散点图

plt.scatter(x,y,s,c,marker,linwidths,edgecolors)
  • (x,y)表示散点的位置
  • s表示散点大小
  • c表示散点颜色
  • marker表示每个点的标记
  • linewidths表示散点的线宽
  • edgecolors表示散点外轮廓的颜色
# 建立坐标系
plt.subplot(1,1,1)
# 指明x,y
x = [5.5,6.6,8.1,15.8,19.5,22.4,28.3,28.9]
y = [2.38,3.85,4.41,5.67,5.44,6.03,8.15,6.87]
# 绘图
plt.scatter(x,y,marker = 'o',s = 100)
# 设置标题
plt.title('1-8月气温与啤酒销量关系图')
# 设置x轴,y轴
plt.xlabel('气温')
plt.ylabel('啤酒销量')

在这里插入图片描述

气泡图

气泡图与散点图类似,散点图中的各点的大小一致,气泡图中各点的大小不一致,同样使用plt库的scatter方法

# 建立坐标系
plt.subplot(1,1,1)
# 指明x,y
x = np.array([5.5,6.6,8.1,15.8,19.5,22.4,28.3,28.9])
y = np.array([2.38,3.85,4.41,5.67,5.44,6.03,8.15,6.87])
# 绘图
plt.scatter(x,y,c = (y*10),marker = 'o',s = (y*100))
# 设置标题
plt.title('1-8月气温与啤酒销量关系图')
# 添加数据标签
for a,b in zip(x,y):plt.text(a,b,b,ha = 'center',va = 'center',fontsize = 10,color = 'white')
# 设置x轴,y轴
plt.xlabel('气温')
plt.ylabel('啤酒销量')

在这里插入图片描述

面积图

plt.stackplot(x,y,labels,colors)
  • (x,y)表示坐标数值
  • labels表示不同系列图表的图例名
  • colors表示不同系列图表的颜色
# 建立坐标系
plt.subplot(1,1,1)
# 指明x,y
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.stackplot(x,y1,y2,labels = ['注册人数','激活人数'])
# 设置标题
plt.title('1-9月注册与激活人数')
# 设置x轴、y轴名称
plt.xlabel('月份')
plt.ylabel('注册与激活人数')
# 设置图例
plt.legend()

在这里插入图片描述

树地图

squarity.plot(sizes,label,color,value,edgecolor,linewidth)
  • sizes表示待绘图数据
  • label表示不同类别的图例标签
  • color表示不同类别的颜色
  • value表示不同类别的数据标签
  • edgecolor表示不同类别之间的边框的颜色
  • linewidth边框线宽
import squarify#中文及负号处理办法
plt.rcParams['font.sans-serif'] = 'Arial Unicode MS'
plt.rcParams['axes.unicode_minus'] = False# 数据创建
name = ['上海GDP','北京GDP','广州GDP','深圳GDP','天津GDP','重庆GDP','苏州GDP','武汉GDP','成都GDP','杭州GDP','南京GDP','青岛GDP','长沙GDP', '无锡GDP','佛山GDP','宁波GDP','大连GDP','郑州GDP','沈阳GDP','烟台GDP']
income =[26688,24541,20004,19300,17800,17010,15400,11756,11721,11700,10450,10100,9309,9157,8600,8560,8150,7920,7644,7003]# 绘图details
colors = ['steelblue','#9999ff','red','indianred','deepskyblue','lime','magenta','violet','peru',  'green','yellow','orange','tomato','lawngreen','cyan','darkcyan','dodgerblue','teal','tan','royalblue']
plot = squarify.plot(sizes = income, # 指定绘图数据label = name, # 指定标签color = colors, # 指定自定义颜色alpha = 0.6, # 指定透明度value = income, # 添加数值标签edgecolor = 'white', # 设置边界框为白色linewidth =3 # 设置边框宽度为3)
# 设置标签大小为10
plt.rc('font', size=10)
# 设置标题大小
plot.set_title('2017年城市GDP排名前20(亿元)',fontdict = {'fontsize':15})
# 除坐标轴
plt.axis('off')
# 除上边框和右边框刻度
plt.tick_params(top = 'off', right = 'off')
# 图形展示
plt.show()

在这里插入图片描述

雷达图

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]])) #闭合
angles = np.concatenate((angles,[angles[0]])) # 闭合
# 绘图
plt.polar(angles,data,color = 'r',marker = 'o')
# 设置x轴刻度
plt.xticks(angles,labels)
# 设置标题
plt.title('数据分析师的综合评级')

在这里插入图片描述

箱形图

plt.boxplot(x,vert,widths,labels)
  • x表示待绘图源数据
  • vert表示箱形图方向,True为纵向,False为横向,默认为True
  • widths箱形图的宽度
  • labels箱形图的标签
# 建立坐标系
plt.subplot(1,1,1)
# 指明x值
y1 = np.array([866,2335,5710,6482,6120,1605,3813,4428,4631])
y2 = np.array([433,1167,2855,3241,3060,802,1906,2214,2315])
x = [y1,y2]
# 绘图
plt.boxplot(x,labels = ['注册人数','激活人数'],vert = True,widths = [0.2,0.5])
plt.title('1-9月注册与激活人数')

在这里插入图片描述

饼图


http://www.ppmy.cn/news/271224.html

相关文章

python可视化图表

文章目录 制作折线图并且保存至桌面柱状图簇状条形图堆积柱形图堆积图制作堆积柱形图绘制条形图散点图绘制气泡图绘制面积图绘制树地图绘制雷达图绘制箱型图绘制饼图绘制环形图绘制水平线和垂直线直线绘制组合图表---折线图折线图折线图柱形图绘制双y轴图表绘制双y轴图表绘制双…

DELL服务器常用检查命令

内存 1、检查内存 /opt/dell/srvadmin/sbin/srvadmin-services.sh omreport chassis memory|grep -e "Status" -e "Connector Name" omreport chassis memory |grep Critical -A3 -B1 上面是检查内存状态 2、查看内存SN号 命令如下: 1、…

Python数据可视化之12种常用图表的绘制(一)——折线图/柱形图/条形图/散点图/气泡图/面积图

文章目录 折线图的绘制柱形图的绘制普通柱形图镞状柱形图层叠柱形图 条形图散点图气泡图面积图 折线图的绘制 废话不多说,直接撸代码~ import numpy as np import matplotlib.pyplot as plt plt.subplot(1,1,1)#建立一个坐标系 x np.array([1, 2, 3, 4, 5, 6, 7,…

华尔街分析师:斗鱼2023财年前景暗淡,但盈利能力有望提升

来源:猛兽财经 作者:猛兽财经 华尔街预计斗鱼2023财年收入前景悲观 根据S&P Capital IQ的一致性数据,华尔街卖方分析师预计,斗鱼(DOYU)的收入将从2022财年的71.93亿元下降到2023财年的67.53亿元&#x…

Oracle T5-2 服务器主板故障日志

1.2022-10-24 lease-1881日志,清除错误后才可加电: 58 Mon Oct 24 15:34:23 2022 Power Off major Power to /SYS has been turned off by: SP, Reason: Fault /SYS/MB 57 Mon Oct 24 15:34:23 2022 Fault Fault critical Fault detected at time Mon O…

expected 'document', but found Scalar in 'reader', line 51, column 1:

expected <document start>, but found Scalar in reader, line 51, column 1: - "localhost" ^ 启动storm时发生了问题,如下: Exception in thread "main" Exception java.lang.ExceptionInInitializerError at org.apache.storm.config$r…

Python数据可视化之12种常用图表的绘制(三)——四种组合图表的绘制(附代码和效果图)

文章目录 折线图折线图折线图柱形图绘制双y轴图表 通过前两篇博文我们已经学会了折线图/柱形图/条形图/散点图/气泡图/面积图的绘制 以及树地图&雷达图&箱型图&饼图&圆环图&热力图 可以看看这两篇博文 Python数据可视化之12种常用图表的绘制&#xff08;一…

记一次服务CPU过高排查

记一次服务CPU过高排查 今天到公司后&#xff0c;测试报告说页面操作时报网络异常&#xff0c;让我排查一下。 我先去服务上使用 ps -ef | grep <服务名>查看了一下&#xff0c;发现服务是存在的&#xff0c;然后服务调不通超时可能是服务没响应&#xff0c;资源不够。…