python简单数据可视化

简介: 摘要:数据可视化的基本流程:1整理数据,2明确目的,3寻找合适的表现形式图表的基本元素组成:画布、坐标系、坐标轴、坐标轴标题、图标标题、数据标签、数据网格线、图例、误差线

一、建立画布和坐标系


# 建立画布
import numpy as np
import matplotlib.pyplot as plt
#解决中文乱码问题
plt.rcParams["font.sans-serif"]=['SimHei']
# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
# plt.savefig("test.svg", format="svg")
# 建立画布:plt.figure里面又一个参数figsize=(8,6),它用width,height来控制整块画布的宽和高
fig = plt.figure(figsize=(8,6))
# 用add_subplot函数建立坐标系
# 利用add_subplot函数建立坐标系时需要先有画布, add_subplot函数最后一个数num must be 1 <= num <= 4, not 8
# 在fig上绘制1x1个坐标系
ax0 = fig.add_subplot(1,1,1)
plt.show()
# 绘制4个坐标系
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)
plt.show()


二、设置坐标轴

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontManager
#解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
plt.savefig("test.svg", format="svg")
'''
查看python自带字体
fm = FontManager()
mat_fonts = set(f.name for f in fm.ttflist)
print(mat_fonts)
'''
# 数据源
df = pd.read_excel('/Users/caizhengjie/Desktop/数据分析数据/数据可视化/数据1.xlsx')
print(df)
# 设置坐标轴的标题
plt.subplots(1,1)
#还可以设置xlabel,ylabel到x轴,y轴的距离,给参数labelpad传入具体值
plt.xlabel('月份',labelpad=10)
plt.ylabel('注册量',labelpad=10)
# 还可以对xlabel的文本相关性质进行设置
# plt.xlabel('月份',labelpad=10,fontsize='xx-large',color = "#70AD47",fontweight = 'hold')
#设置坐标轴的刻度
# plt.xticks(ticks='',labels='') ticks表示刻度值,labels表示刻度处对应的标签
# plt.yticks(ticks='',labels='')
plt.xticks(ticks=np.arange(9),labels=['1月份','2月份','3月份','4月份','5月份','6月份','7月份','8月份','9月份'])
plt.yticks(ticks=np.arange(1000,7000,1000),labels=['1000人','2000人','3000人','4000人','5000人','6000人'])
'''
plt库中tick_params函数对轴刻度线进行设置
tick_params函数中的参数
axis  对哪个轴的刻度线进行设置,x,y,both三个可选
reset  是否重置所有设置True/False
which  对那种刻度线进行设置,major(主刻度线),minor(次刻度线),both三个可选
direction  刻度线的朝向,in(朝里),out(朝外),inout(里外均有)三个可选
length  刻度线长度
width  刻度线宽度
color  刻度线颜色
pad  刻度线与刻度标签之间的距离
labelsize  刻度标签大小
labelcolor 刻度标签颜色
top,botton,left,right  True/False可选,控制上下左右刻度线是否显示
labeltop,Labelbottom,labelleft,labelright  True/False可选,控制上下左右刻度线是否显示
'''
# # 设置坐标轴的范围
# plt.xlim(0,10)
# plt.ylim(0,8000)
#
# # 坐标轴的显示设置,off为不显示坐标轴
# plt.axis('off')
plt.plot(df['月份'],df['注册量'])
plt.show()


三、其他表格格式的设置


import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
# plt.savefig("test.svg", format="svg")
# 数据源
df = pd.read_excel('/Users/caizhengjie/Desktop/数据分析数据/数据可视化/数据1.xlsx')
print(df)
plt.subplots(1,1)
# 网格线设置,grid(b = 'True')来启用网格线
plt.grid(b = 'True')
# 只打开x轴的网格线
plt.grid(b = 'True',axis='x')
# 只打开y轴的网格线
plt.grid(b = 'True',axis='y')
# 线型设置成虚线,线宽设置成1
plt.grid(b = 'True',linestyle = 'dashed',linewidth = 1)
#设置坐标轴的刻度
# plt.xticks(ticks='',labels='') ticks表示刻度值,labels表示刻度处对应的标签
# plt.yticks(ticks='',labels='')
plt.xticks(ticks=np.arange(9),labels=['1月份','2月份','3月份','4月份','5月份','6月份','7月份','8月份','9月份'])
plt.yticks(ticks=np.arange(1000,7000,1000),labels=['1000人','2000人','3000人','4000人','5000人','6000人'])
#设置图例
'''
plt.plot(x,y,label = '折线图')
plt.bar(x,y,label = '柱形图')
通过plt.legend()方法显示出来
plt.legend(loc=)
还可以修改loc参数来显示图例位置
'''
# 图表标题设置
# 可以修改loc参数来显示标题位置,默认是居中,center居中,left靠左显示,right靠右显示
plt.title(label='1-9月xxx公司注册用户数')
# 数据线
plt.plot(df['月份'],df['注册量'])
#设置数据标签
# plt.text(x,y,str,ha,va,fontsize):(x,y)表示在哪里显示数据,str:显示的数据,ha:表示str在水平方向的位置,va表示str在垂直方向的位置,fontsize表示字体大小
plt.text(5,1605,1605)
# 显示表上左右点的所有数据
for a,b in zip(df['月份'],df['注册量']):
    plt.text(a,b,b,ha = 'center',va = 'bottom',fontsize = 11)
# 图表注释:与数据标签作用类似,都是便于读者快速读取信息
'''
plt.annotate(s,xy,xytext,arrowropes)
s:表示要注释的文本内容
xy:表示要注释的位置
xytext:表示要注释文本显示的位置
arrowprops:设置箭相关参数,颜色,箭类型设置
'''
plt.annotate('服务器宕机了',xy = (5,1605),xytext=(6,1605),arrowprops = dict(facecolor = 'black',arrowstyle = '->'))
'''
数据表:就是在图表的基础上再添加一个表格
plt.table(cellText = None,cellColours=None,cellLoc='right',colWidths=None,
rowLabels = None,rowColours=None,rowLoc='left',colLabels=None,colColours=None,
colLoc = 'center',loc = 'bottom')
cellText   数据表内的值
cellColours数据表的颜色
cellLoc    数据表中数据的位置,可选left,right,center
colWidths  列宽
rowLabels  行标签
rowColours 行标签颜色
rowLoc     行标签的位置
colLabels  列标签
colColours 列标签颜色
colLoc     列标签的位置
loc整个数据表的位置,可选坐标系的上,下,左,右
'''
cellText = [[8566,5335,7310,6482],
            [4283,2667,3655,3241]]
rows = ['任务量','完成量']
columns = ['东区','南区','西区','北区']
plt.table(cellText = cellText,
          cellLoc='center',
          rowLabels=rows,
          rowColours=['red','yellow'],
          rowLoc ='center',
          colLabels=columns,
          colColours=['red','yellow','red','yellow'],
          colLoc='left',
          loc='bottom'
          )
plt.savefig("test.svg", format="svg")
plt.show()


四、用plt.subplot2grid函数建立坐标系


import numpy as np
import matplotlib.pyplot as plt
#解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
# plt.savefig("test.svg", format="svg")
# 用plt.subplot函数建立坐标系
# 用plt.subplot函数建立坐标系不需要先建立画布,只需要导入plt库就可以了
plt.subplot(2,2,1) #将图表的整个区域分成2行2列,且在第一个坐标系里面绘图
# 在第一个坐标系里面画折线
x = np.arange(6)
y = np.arange(6)
plt.plot(x,y)
# 在第四个坐标系里面柱形
plt.subplot(2,2,4)
plt.bar(x,y)
plt.show()


五、用plt.subplots函数建立坐标系


import numpy as np
import matplotlib.pyplot as plt
#解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
#plt.savefig("test.svg", format="svg")
'''
plt.subplots函数也是plt库的一个函数,与plt.subplot2grid函数和plt.subplot函数不同之处是,
lt.subplot2grid函数和plt.subplot函数每次只能返回一个坐标系,而plt.subplots函数可以一次可以返回多个坐标系
'''
fig,axes = plt.subplots(2,2)
# 想在哪个坐标系中绘图可以通过axes[x,y]来指明
x = np.arange(6)
y = np.arange(6)
# 在[0,0]坐标系中绘制折线图
axes[0,0].plot(x,y)
# 在[1,1]坐标系绘制柱状图
axes[1,1].bar(x,y)
plt.show()


六、用plt.subplot函数建立坐标系


import numpy as np
import matplotlib.pyplot as plt
#解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
# 解决负号无法正常显示的问题
plt.rcParams['axes.unicode_minus']=False
#在默认设置下matplotlib做出来的图表不是很清楚,可以将图表设置成矢量格式显示
# plt.savefig("test.svg", format="svg")
# 用plt.subplot函数建立坐标系
# 用plt.subplot函数建立坐标系不需要先建立画布,只需要导入plt库就可以了
plt.subplot(2,2,1) #将图表的整个区域分成2行2列,且在第一个坐标系里面绘图
# 在第一个坐标系里面画折线
x = np.arange(6)
y = np.arange(6)
plt.plot(x,y)
# 在第四个坐标系里面柱形
plt.subplot(2,2,4)
plt.bar(x,y)
plt.show()


相关文章
|
1天前
|
算法 Serverless 数据处理
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
22 12
|
6天前
|
数据采集 数据安全/隐私保护 Python
从零开始:用Python爬取网站的汽车品牌和价格数据
在现代化办公室中,工程师小李和产品经理小张讨论如何获取懂车帝网站的汽车品牌和价格数据。小李提出使用Python编写爬虫,并通过亿牛云爬虫代理避免被封禁。代码实现包括设置代理、请求头、解析网页内容、多线程爬取等步骤,确保高效且稳定地抓取数据。小张表示理解并准备按照指导操作。
从零开始:用Python爬取网站的汽车品牌和价格数据
|
1月前
|
数据采集 Web App开发 数据可视化
Python用代理IP获取抖音电商达人主播数据
在当今数字化时代,电商直播成为重要的销售模式,抖音电商汇聚了众多达人主播。了解这些主播的数据对于品牌和商家至关重要。然而,直接从平台获取数据并非易事。本文介绍如何使用Python和代理IP高效抓取抖音电商达人主播的关键数据,包括主播昵称、ID、直播间链接、观看人数、点赞数和商品列表等。通过环境准备、代码实战及数据处理与可视化,最终实现定时任务自动化抓取,为企业决策提供有力支持。
|
2月前
|
数据采集 存储 XML
python实战——使用代理IP批量获取手机类电商数据
本文介绍了如何使用代理IP批量获取华为荣耀Magic7 Pro手机在电商网站的商品数据,包括名称、价格、销量和用户评价等。通过Python实现自动化采集,并存储到本地文件中。使用青果网络的代理IP服务,可以提高数据采集的安全性和效率,确保数据的多样性和准确性。文中详细描述了准备工作、API鉴权、代理授权及获取接口的过程,并提供了代码示例,帮助读者快速上手。手机数据来源为京东(item.jd.com),代理IP资源来自青果网络(qg.net)。
|
2月前
|
数据可视化 数据挖掘 DataX
Python 数据可视化的完整指南
Python 数据可视化在数据分析和科学研究中至关重要,它能帮助我们理解数据、发现规律并以直观方式呈现复杂信息。Python 提供了丰富的可视化库,如 Matplotlib、Seaborn、Plotly 和 Pandas 的绘图功能,使得图表生成简单高效。本文通过具体代码示例和案例,介绍了折线图、柱状图、饼图、散点图、箱形图、热力图和小提琴图等常用图表类型,并讲解了自定义样式和高级技巧,帮助读者更好地掌握 Python 数据可视化工具的应用。
126 3
|
2月前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
2月前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
2月前
|
数据可视化 Python
使用Python进行数据可视化的初学者指南
在数据的海洋里,我们如何能够不迷失方向?通过数据可视化的力量,我们可以将复杂的数据集转化为易于理解的图形和图表。本文旨在为初学者提供一份简明的入门手册,介绍如何使用Python中的Matplotlib库来揭示数据背后的故事。我们将从基础的图表开始,逐步深入到更高级的可视化技术,确保每个步骤都清晰易懂,让初学者也能轻松上手。让我们开始绘制属于你自己的数据图谱吧!
|
2月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
304 10
|
3月前
|
数据可视化 数据处理 Python
Python编程中的数据可视化技术
在Python编程中,数据可视化是一项强大的工具,它能够将复杂的数据集转化为易于理解的图形。本文将介绍如何使用matplotlib和pandas这两个流行的Python库来实现数据可视化,并展示一些实用的代码示例。通过这些示例,读者将学会如何创建各种图表,包括折线图、柱状图和散点图等,以便更好地理解和呈现数据。

热门文章

最新文章

推荐镜像

更多