python读取excel绘制柱状图_python读取excel制作柱状图和词云图片

问题描述

需要将excel中的一列内容转换成柱状图和词云,所以用到了matplotlib/xlrd/wordcloud三个库来解决问题

xlrd:读取excel文件

matplotlib:画柱状图

wordcloud:生成词云

具体步骤

xlrd读取文件:

import xlrd

def start_generate():

path = "test.xlsx"

data = xlrd.open_workbook(path)

sheet1 = data.sheet_by_name('Sheet1') # Sheet1 左下角的sheet

list1 = sheet1.col_values(0) # 第一列的数据列表

matplotlib:画柱状图

import matplotlib.pyplot as plt

def draw_from_dict(dicdata, RANGE):

#dicdata:字典的数据。

#RANGE:截取显示的字典的长度。

by_value = sorted(dicdata.items(),key = lambda item:item[1],reverse=True) # 对字典进行排序

x = []

y = []

for d in by_value:

x.append(d[0])

y.append(d[1])

plt.barh(x[0:RANGE], y[0:RANGE]) # 横向柱状图

plt.tight_layout() # 左侧显示不全,使用该函数

plt.savefig('plt.png') # 保存

plt.show()

wordcloud:词云

from wordcloud import WordCloud

def draw_from_list(lis): # 传入的list

text = ' '.join(lis)

wordcloud = WordCloud(background_color='white',

max_words=300,

font_path="Kai.ttf", # 当前目录下中文楷体 结尾有下载

width=1600,

height=1000).generate(text)

wordcloud.to_file("WordCloud.png")

完整代码(完成的是对第一列数据的操作,需要其他列数据自行修改)

import xlrd

import matplotlib.pyplot as plt

from wordcloud import WordCloud

def draw_from_list(lis):

text = ' '.join(lis)

wordcloud = WordCloud(background_color='white',

max_words=300,

font_path="Kai.ttf",

width=1600,

height=1000).generate(text)

wordcloud.to_file("WordCloud.png")

def draw_from_dict(dicdata, RANGE):

#dicdata:字典的数据。

#RANGE:截取显示的字典的长度。

by_value = sorted(dicdata.items(),key = lambda item:item[1],reverse=True)

x = []

y = []

for d in by_value:

x.append(d[0])

y.append(d[1])

plt.barh(x[0:RANGE], y[0:RANGE])

plt.tight_layout()

plt.savefig('test.png')

plt.show()

def start_generate():

path = "test.xlsx"

data = xlrd.open_workbook(path)

sheet1 = data.sheet_by_name('Sheet1')

list1 = sheet1.col_values(0)

dic = dict()

for i in list1:

val = dic.get(i)

if val:

dic[i] = val+1

else:

dic[i] = 1

draw_from_list(list1)

draw_from_dict(dic, len(dic))

if __name__ == '__main__':

start_generate()

遇到的问题

开始生成柱状图的时候,ylable全是乱码,通过这个链接解决了(注意去掉对应配置的'#',最后一步rebuild很重要!)

下载链接

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python可以使用pandas库读取Excel文件,并使用matplotlib库绘制柱状图。 具体步骤如下: 1. 安装pandas和matplotlib库 可以使用pip命令安装: ``` pip install pandas pip install matplotlib ``` 2. 导入库 ```python import pandas as pd import matplotlib.pyplot as plt ``` 3. 读取Excel文件 ```python df = pd.read_excel('文件路径/文件名.xlsx') ``` 4. 绘制柱状图 ```python plt.bar(df['列名'], df['列名']) plt.show() ``` 其中,`df['列名']`表示Excel文件中的某一列数据。 完整代码示例: ```python import pandas as pd import matplotlib.pyplot as plt df = pd.read_excel('文件路径/文件名.xlsx') plt.bar(df['列名'], df['列名']) plt.show() ``` ### 回答2: Python是一种强大的编程语言,可以用于各种用途。其中一个常见的应用场景是读取Excel文件并生成图表。Python中有很多库可以实现这个功能,其中最常见的是pandas和matplotlib。 首先,我们需要使用pandas库读取Excel文件。pandas库是Python中用于数据分析和处理的库,它可以轻松地读取各种不同格式的数据文件,包括Excel文件。 在使用pandas读取Excel文件之前,我们需要安装pandas库。可以使用pip命令安装它: pip install pandas 安装好之后,我们就可以使用pandas来读取Excel文件了。假设我们要读取Excel文件名为“example.xlsx”,包含一个名为“data”的工作表,其中包含“Name”和“Score”两列,我们可以使用以下代码读取数据: import pandas as pd df = pd.read_excel('example.xlsx', sheet_name='data') 这样就可以将Excel文件中的数据读取到名为“df”的pandas数据框中。 接下来,我们需要使用matplotlib库来生成图表。matplotlib是Python中用于绘制图形的库,可以轻松地创建各种类型的图表。 在使用matplotlib之前需要先安装它。可以使用pip命令安装: pip install matplotlib 安装好之后,我们可以使用matplotlib来生成柱状图。以下是一个示例代码: import matplotlib.pyplot as plt plt.bar(df['Name'], df['Score']) plt.show() 这段代码中,我们使用“plt.bar()”函数来创建柱状图,传入的参数是Excel文件中“Name”和“Score”两列的数据。最后使用“plt.show()”函数来显示生成的柱状图。 总之,读取Excel绘制柱状图是一个非常实用的数据处理任务。Python中的pandas和matplotlib等库可以高效地实现这个功能,帮助人们更好地分析和处理数据。 ### 回答3: Python是一种广泛使用的编程语言,具有强大的数据处理能力。而在数据处理中,Excel表格是常用的数据源。因此,Python读取Excel绘制柱状图是非常有用的功能。下面,将介绍如何使用Python读取Excel表格并用Matplotlib绘制柱状图读取Excel表格 Python中有多种读取Excel表格的库,常用的有xlrd和pandas。这里介绍pandas的用法。 如下是读取Excel表格数据的代码: ``` import pandas as pd # 读取Excel表格 df = pd.read_excel('file.xlsx') # 打印数据 print(df) ``` 代码解释: - `import pandas as pd`:导入pandas库。 - `pd.read_excel('file.xlsx')`:读取文件名为file.xlsx的Excel表格,生成一个DataFrame(数据框)类型的对象df。 - `print(df)`:打印输出df对象的内容。 绘制柱状图 在使用Matplotlib绘制柱状图前,需要对数据进行一些预处理,如选择需要绘制的列、填充NaN(非数字)值等。下面是对数据预处理后,使用Matplotlib绘制柱状图的代码: ``` import pandas as pd import matplotlib.pyplot as plt # 读取Excel表格 df = pd.read_excel('file.xlsx') # 选择需要绘制的列 df = df[['列名1', '列名2', '列名3']] # 填充NaN值 df = df.fillna(0) # 绘制柱状图 df.plot(x='列名1', kind='bar') # 显示图形 plt.show() ``` 代码解释: - `import matplotlib.pyplot as plt`:导入Matplotlib库中的pyplot模块。 - `df = df[['列名1', '列名2', '列名3']]`:根据需要绘制的列名,筛选出需要的数据列。 - `df = df.fillna(0)`:将NaN值填充为0。 - `df.plot(x='列名1', kind='bar')`:绘制柱状图,其中x轴为列名1,图形类型为柱状图。 - `plt.show()`:显示图形。 总结 在Python中,使用pandas库读取Excel表格数据,可以得到便于操作的DataFrame对象。而使用Matplotlib库,可以直接在Python绘制各种类型的图形。当然,Python中还有其他绘图库可以使用,如Seaborn、Bokeh等,根据实际需求选择适合自己的库即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值