首页 > 编程语言 >Python数据分析,办公自动化,数据可视化

Python数据分析,办公自动化,数据可视化

时间:2022-11-10 10:09:56浏览次数:75  
标签:plot 办公自动化 Python label 图表 color plt 可视化 df

Python数据分析,办公自动化,数据可视化_办公自动化

Python数据分析,办公自动化,数据可视化_办公自动化_02

数据可视化是为了使得数据更高效的反应数据情况,便于让读者更高效阅读,而不单是自己使用,通过数据可视化突出数据背后的规律,以此突出数据中的重要因素,并且,数据可视化可以将数据变得更加直观。

精美的图表可以方便用户解读数字之间的关系,相比起枯燥的表格来讲,有助于发现容易被忽视的趋势和规律。通过对趋势和规律的分析,可以帮助用户做出正确的判断。



本文使用工具:Python 3.7.0

本文使用的函数:pandas、matplotlib

适用范围:pandas普通作图,matplotlib高级作图




Python数据分析,办公自动化,数据可视化_图例_03


Pandas‍‍

首先介绍pandas作图,日常使用pandas库做一些数据清洗的工作,原来pandas还可以作图,并且做图时,使用一行代码就可以轻松作图,详细的作图方法可以看代码中的注释。

#导入pandas库
import pandas as pd
#生成一个Series
s=pd.Series([1,3,3,4], index=list('ABCD'))
#括号内不指定图表类型,则默认生成直线图
s.plot()

Python数据分析,办公自动化,数据可视化_办公自动化_04

​#条形图 ​​​​s.plot(kind='bar')​

Python数据分析,办公自动化,数据可视化_数据_05

​#水平条形图 ​​​​s.plot.barh()​

Python数据分析,办公自动化,数据可视化_数据_06

​#饼图 ​​​​s.plot.pie()​

Python数据分析,办公自动化,数据可视化_数据_07

​#直方图 ​​​​s.plot.hist()​

Python数据分析,办公自动化,数据可视化_数据_08

#密度图 
import numpy as np
#生成一列随机数
s=pd.Series(np.random.randn(1000))
s.plot.kde()
s.plot.density()

Python数据分析,办公自动化,数据可视化_数据_09

#散点图 
import numpy as np
#生成一个DataFrame
df=pd.DataFrame(np.random.randn(1000,2),columns=['X1','Y'])
df.plot.scatter(x='X1',y='Y')

Python数据分析,办公自动化,数据可视化_数据_10

​#六角箱图 ​​​​df.plot.hexbin(x='X1',y='Y',gridsize=8)​

Python数据分析,办公自动化,数据可视化_图例_11

​#箱型图 ​​​​df=pd.DataFrame(np.random.rand(10,2),columns=['A','B']) ​​​​df.plot.box()​

Python数据分析,办公自动化,数据可视化_图例_12

​#面积图 ​​​​df=pd.DataFrame(np.random.randint(10,size=(4,4)), ​​​​list('ABCD'), ​​​​list('WXYZ')) ​​​​df.plot.area()​

Python数据分析,办公自动化,数据可视化_数据_13

Matplotlib

下面介绍matplotlib的用法,使用matplotlib除了可以作图外,还可以对于图表的参数做一些调整,使得图表更加美观,关于使用matplotlib的建议,可以做一些常用的图表模板,更换代码的数据源就可以生成图表,而不用一点一点的去调整参数。

#导入模块 
import matplotlib.pyplot as plt
#设置风格
plt.style.use('seaborn-white')


#中文显示问题,如果没有这段代码,图表不显示中文汉字
plt.rcParams['font.sans-serif'] =['SimHei'] #win

这里首先导入matplotlib库,并使用了seaborn-white的图表风格,可以使用plt.style.available 查看图表的风格,选择一个自己喜欢的图表风格,在图表中不能显示汉字,使用一段代码就可以显示了。

#构建一个DataFrame
import pandas as pd
import matplotlib.pyplot as plt
df=pd.DataFrame({'X':[1,3,5,7]})
df['Y']=df['X']**3
df

Python数据分析,办公自动化,数据可视化_图例_14

#设置图像的大小
plt.figure(facecolor='white',figsize=(9,6),dpi=100)
plt.plot(df['X'],df['Y'])


#设置图像的标题
plt.title('折线图',fontsize=15,color='b')


#设置图像的X、Y轴标题大小,颜色,与坐标轴的距离
plt.xlabel('X轴',fontsize=10,color='r',labelpad=15)
plt.ylabel('Y轴',fontsize=10,color='g',rotation=0,labelpad=15)


#设置起始坐标点
plt.xlim([1,8])
plt.ylim([1,350])
#plt.xticks([1,2,3,4])只显示1,2,3,4
#plt.yticks([50,150,250,300])只显示50,150,250,300


#图像的网格线进行设置
plt.grid(color='r', linestyle='-.')

这里首先设置图像的大小,跟我们画画一样,选择多大的纸张去作图,一样的道理,然后设置坐标轴,起始坐标,网格线等。

Python数据分析,办公自动化,数据可视化_数据_15

有时候,要在一张图表上绘制多条线。

​#多个图的绘图方法 ​​​​import numpy as​​​​import matplotlib.pyplot as​​​​x=np.array([1,3,5]) ​​​​y1=x ​​​​y2=x * 10​​​​y3=x * 20​​​​y4=x * 30​

可以在一个plt.plot命令后继续加另一个plt.plot命令,可以在一张图上做另一条线。

plt.figure(facecolor='white') 
plt.plot(x,y1,label='A')
plt.plot(x,y2,label='B')
plt.plot(x,y3,label='C')
plt.plot(x,y4,label='D')


plt.legend()#显示图例

Python数据分析,办公自动化,数据可视化_办公自动化_16

使用plt.subplots命令也可以作出同样的图。

#使用面向对象绘图 
fig,ax=plt.subplots(facecolor='white')
plt.plot(x,y1,label='A')
plt.plot(x,y2,label='B')
plt.plot(x,y3,label='C')
plt.plot(x,y4,label='D')


plt.legend()#显示图例

Python数据分析,办公自动化,数据可视化_数据_17

多表绘制

下面介绍在一张图表的不同位置绘制不同的线型,使用plt.subplot命令首先确定绘图的位置,比如plt.subplot(223)表示在2*2分布的图表中第三个位置,其余的绘图命令相似。

plt.figure(facecolor='white',figsize=(9,6)) 


plt.subplot(221)
plt.plot(x,y1,label='A',color='r')
plt.xticks(fontsize=15)
plt.legend()#显示图例


plt.subplot(222)
plt.plot(x,y2,label='B',color='y')
plt.xticks(fontsize=15)
plt.legend()#显示图例


plt.subplot(223)
plt.plot(x,y3,label='C',color='b')
plt.xticks(fontsize=15)
plt.legend()#显示图例


plt.subplot(224)
plt.plot(x,y4,label='D',color='g')
plt.xticks(fontsize=15)
plt.legend()#显示图例


plt.tight_layout()#密集显示

Python数据分析,办公自动化,数据可视化_图例_18

除了使用plt.subplot命令确定绘图区域外,还可以用axs[ ]命令绘图,这种绘图方式是面向对象的绘图方式。

#面向对象绘制多图 
fig,axs=plt.subplots(2,2,facecolor='white',figsize=(9,6))


axs[0,0].plot(x,y1,label='A',color='r')
axs[0,1].plot(x,y2,label='B',color='y')
axs[1,0].plot(x,y3,label='C',color='b')
axs[1,1].plot(x,y4,label='D',color='g')

Python数据分析,办公自动化,数据可视化_图例_19

有时候绘制多张表时需共享一个坐标轴,可以使用sharex='all'命令。

#sharex='all'共享X轴 
fig,axs=plt.subplots(4,1,facecolor='white', figsize=(9,6), sharex='all')


axs[0].plot(x,y1,label='A',color='r')
axs[1].plot(x,y2,label='B',color='y')
axs[2].plot(x,y3,label='C',color='b')
axs[3].plot(x,y4,label='D',color='g')

Python数据分析,办公自动化,数据可视化_图例_20

设置全局变量

使用plt.rcParams命令对全局变量设置,包括字符显示、中文显示、背景颜色、标题大小、坐标轴字体大小,线型等。

#导入模块 
import matplotlib.pyplot as plt
#设置风格
plt.style.use('seaborn-white')


#设置全局变量
plt.rcParams['axes.unicode_minus'] = False #字符显示
plt.rcParams['font.sans-serif'] =['SimHei'] #中文显示
plt.rcParams['figure.facecolor'] = 'b' #设置图表背景颜色
plt.rcParams['axes.facecolor'] = (0.8,0.9,0.8) #设置RGB颜色
plt.rcParams['axes.titlesize'] = 20 #设置标题大小
plt.rcParams['axes.labelsize'] = 20 #设置轴大小
plt.rcParams['xtick.labelsize'] = 20 #设置X坐标大小
plt.rcParams['ytick.labelsize'] = 20 #设置Y坐标大小
plt.rcParams['lines.linestyle'] = '-.' #设置线型

​plt.plot(x,y1,label='A') ​​​​plt.plot(x,y2,label='B') ​​​​plt.plot(x,y3,label='C') ​​​​plt.plot(x,y4,label='D') ​​​
​​​plt.title('折线图') ​​​​plt.xlabel('X轴') ​​​​plt.ylabel('Y轴') ​​​​plt.legend()#显示图例​

下图就是通过设置全局变量做的图,个人觉得并不美观,对于其他图表全局变量的设置,大家可以探索,做出更好看的图表。

Python数据分析,办公自动化,数据可视化_数据_21

Python数据分析,办公自动化,数据可视化_数据_22

标签:plot,办公自动化,Python,label,图表,color,plt,可视化,df
From: https://blog.51cto.com/u_15828536/5839638

相关文章

  • Python数据分析,办公自动化,时间序列
    时间序列数据是一种重要的结构化数据形式,在多个时间点观察或测量到的任何事物都可以形成一段时间序列。时间序列可以是固定频率的,也可以是不定期的。时间序列数据的意义取决......
  • Python数据分析,办公自动化,数据导入和导出
    写在文章的最前面,Python办公自动化有什么用?使用Python代码脚本取代繁复的手工操作,自动化,流程化处理数据。本文借助Python中的Pandas库进行数据导入,关于如何学习Pandas,我们可......
  • Python实战—修改环境变量
    环境管理环境管理是Python使用中的一大好习惯,如果你不想在一遍遍重装Python和系统中折腾循,那么环境管理是学习Python的过程中非常必要的一环。手动创建虚拟环境软件安装完毕......
  • Python实战—巴尔的摩公务员的待遇怎么样?
    本节以美国城市巴尔的摩2016年公务员的工资数据集为例,数据来源于网络,通过数据分组统计,并且可视化,分析其工资情况。数据来源importnumpyasnpimportpandasaspdimportma......
  • Python数据分析,批量合并表格
    日常在处理数据时,数据表格常常以固定的格式,这些表格都具有相同的列名,通过对数据表进行整合,可以极大的提高我们的工作效率。本节使用两种方法对于表格批量处理,一种是常规的菜......
  • 数据可视化|常用图表类型汇总
    数据可视化是为了使得数据更高效的反应数据情况,便于让读者更高效阅读,而不单是自己使用,通过数据可视化突出数据背后的规律,以此突出数据中的重要因素,并且,数据可视化可以将数据......
  • Python自然语言处理,词云图生成
    自然语言处理本节介绍如何使用Python中的库,生成词云图,涉及自然语言处理的相关问题,自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之......
  • Excel爬取住宅房价数据并可视化,高手都这样做!
    如何用Excel爬取网页数据?是的,你没有听错,习惯性的数据爬取大家都想到的是Python,很多教程也是在讲Python数据爬取,今天给大家讲得是如何用Excel爬取网页数据,不仅可以爬取网页数......
  • Python也能绘制奥运五环
    啊~~~五环,你比四环多一环啊~~~五环,你比六环少一环每当想起小岳岳的歌声,总是充满欢快的气氛,本节给大家介绍如何使用Python绘制奥运五环,这里借助Python中的turtle库,turtle英译为海龟......
  • 基于TensorFlow和Python的机器学习(笔记3)
    基于TensorFlow和Python的机器学习(笔记3)          embedding的原理是使用矩阵乘法来进行降维,从而达到节约存储空间的目的。word2vector工作流程图......