大家好,小编来为大家解答以下问题,一个有趣的事情,一个有趣的事情,今天让我们一起来看看吧!
目录
前言
当谈到数据可视化时,Python是一个非常强大的工具。Python有很多可视化库,其中最流行的是 Matplotlib和SeabornDeepl降重。除此之外,还有—些其他的可视化库,如Plotly、Bokeh 和Pyecharts等。在本篇博客中,我们将重点介绍Pyecharts,因为它提供了丰富的图表类型和配置选项,可以帮助我们轻松地创建出好看的数据可视化图表。
本篇博客仅供参考,更多的是自己的学习笔记,希望可以对其他人有帮助。
一、安装Pyecharts
Pyecharts是一个基于JavaScript的可视化库,它提供了各种类型的图表,包括折线图、散点图、柱状图、饼图、地图、关系图等等。
Pyecharts的优点是易于使用,可以快速创建好看的图表。
在使用Pyecharts时,需要安装Pyecharts库和其依赖项,可以使用pip命令来安装Pyecharts
pip install pyecharts
我一般在Anaconda Prompt里安装
安装完之后,可以直接在Anaconda Prompt里查看是否安装成功和版本号
也可以使用以下命令来检查Pyecharts是否安装成功,如果输出了版本号,则说明安装成功
import pyecharts
print(pyecharts.__version__)
二、代码示例
1.导入Pyecharts
在Pyecharts代码中,需要导入Pycharts库
from pyecharts.charts import *
from pyecharts import options as opts
2.导入表格
在导入表格前,需要导入Pandas库,没有的可以使用pip命令来安装Pandas
pip install pandas
# 导入所需的库
import pandas as pd
# 导入表格
data = pd.read_excel('面包牛奶销量.xlsx')
# 查看表格
data
表格数据:
3.数据处理
# 数据处理
dates = data['日期'].tolist()
milk_sales = data['牛奶'].tolist()
bread_sales = data['面包'].tolist()
使用Pandas库中的tolist()函数将“日期”、“面包”和“牛奶”三列数据转换为Python列表,以便后续使用。
4.生成柱状图
在Pyecahrts中,可以使用不同的类来创建不同类型的图表。以下是一些常用的类:
-Line:用于创建折线图
-Bar:用于创建柱状图
-Pie:用于创建饼图
-Scatter:用于创建散点图
-Map:用于创建地图
以下是一个简单的例子,展示如何使用Pyecharts创建一个柱状图:
# 生成柱形图
bar = (
Bar()
.add_xaxis(dates)
.add_yaxis('牛奶', milk_sales)
.add_yaxis('面包', bread_sales)
.set_global_opts(title_opts=opts.TitleOpts(title='牛奶和面包销量对比'))
)
在这段代码中,使用了Pyecharts库中的Bar()函数创建了一个柱形图对象,并使用add_xaxis()函数将“日期”列表作为X轴数据,使用add_yaxis()函数将“牛奶”和“面包”作为列表分别作为两个Y轴函数。最后使用set_global_opts()函数设置了图表的标题。
5.图表展示
# 展示图表
# bar.render()
# 在Notebook中展示
bar.render_notebook()
在这段代码中,使用了Pyecharts库中的render_notebook()函数将生成的柱形图渲染到Jupyter Notebook中。这个函数可以将图表嵌入到Notebook中,方便我们在Notebook中查看和分析数据。如果想将图表保存为一个HTML文件,可以注释掉bar.render_notebook()并运行bar.render()。
6.完整代码
import pandas as pd
from pyecharts.charts import Bar
from pyecharts import options as opts
# 导入表格
data = pd.read_excel('面包牛奶销量.xlsx')
# 数据处理
dates = data['日期'].tolist()
milk_sales = data['牛奶'].tolist()
bread_sales = data['面包'].tolist()
# 生成柱形图
bar = (
Bar()
.add_xaxis(dates)
.add_yaxis('牛奶', milk_sales)
.add_yaxis('面包', bread_sales)
.set_global_opts(title_opts=opts.TitleOpts(title='牛奶和面包销量对比'))
)
# 展示图表
# bar.render()
# 在Notebook中展示
bar.render_notebook()
效果图:
三、可视化图形示例
我个人对可视化地图和很多新奇好玩的可视化图形很感兴趣,以下是一些可视化图形示例:
1.箱型图
箱型图是一种用于展示数据分布情况的图表,可以显示数据的中位数、四分位数、异常值情况等信息。
代码:
from pyecharts.charts import Boxplotimport random
data = [[random.randint(0, 100) for _ in range(10)] for _ in range(4)]
x_axis = ['data{}'.format(i) for i in range(1, 5)]
boxplot = Boxplot()
boxplot.add_xaxis(x_axis)
boxplot.add_yaxis("", boxplot.prepare_data(data))
boxplot.set_global_opts(title_opts=opts.TitleOpts(title="Boxplot"))
boxplot.render("boxplot.html")
代码使用了pyecharts库中的Boxplot类来绘制箱线图。
1.生成一个包含四组随机数据的列表data,每组数据包含十个随机整数。
2.创建一个包含四个字符串的列表x_axis,用于指定每组数据的名称。
3.创建一个Boxplot对象,并使用add_xaxis方法将x_axis列表中的字符串作为x轴标签添加到图表中。
4.使用add_yaxis方法将数据添加到图表中,并使用prepare_data方法将数据转换为箱线图所需的格式。
5.使用set_global_opts方法设置图表标题,并使用render方法将图表存为HTML文件。
效果图:
2.世界地图
代码:
from pyecharts import options as optsfrom pyecharts.charts import Map
data = [("China", 100), ("United States", 80), ("Russia", 60), ("Japan", 50), ("Germany", 40)]
world_map = (
Map()
.add("", data, "world")
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="世界地图"),
visualmap_opts=opts.VisualMapOpts(max_=100),
)
)
world_map.render("world_map.html")
代码使用了pyecharts库中的Map类来绘制世界地图。
1.创建—个包含五个元组的列表data,每个元组包含一个国家名称和一个整数值。
2.创建一个Map对象,并使用add方法将数据添加到图表中。其中,第二个参数“world"表示绘制世界地图。
3.使用set_series_opts方法设置系列选项,将标签设置为不可见。
4.使用set_global_opts方法设置图表标题和视觉映射选项。其中,max_参数指定了视觉映射的最大值。
5.使用render方法将图表保存为HTML文件。
效果图:
如果需要在Jupyter Notebook中显示图表,可以使用NotebookRender类来渲染图表并在Notebook中显示:
from pyecharts.render import NotebookRender
# 创建图表对象
world_map = (
Map()
.add("", data, "world")
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title="世界地图"),
visualmap_opts=opts.VisualMapOpts(max_=100),
)
)
# 渲染图表并在 Notebook 中显示
NotebookRender().render(world_map)
3.中国地图
代码:
# 导入必要的库和模块
from pyecharts import options as optsfrom pyecharts.charts
import Mapfrom pyecharts.faker
import Faker
# 创建一个Map对象并设置地图的基本属性
map = Map()map.set_global_opts(
title_opts=opts.TitleOpts(title="中国地图"),
visualmap_opts=opts.VisualMapOpts(max_=200),
)
# 添加数据并设置数据的属性
map.add("中国地图", [list(z) for z in zip(Faker.provinces, Faker.values())], "china")
# 渲染地图保存
map.render("china_map.html")
代码使用pyecharts库中的Map类来绘制中国地图。
1.创建一个Map对象,并使用set_global_opts方法设置图表标题和视觉映射选项。其中,max_参数指定了视觉映射的最大值。
2.使用add方法将数据添加到图表中。其中,第一个参数“中国地图"表示数据系列的名称,第二个参数是一个列表,包含了每个省份的名称和—个随机整数值。
3.使用render方法将图表保存为HTML文件。
效果图:
4.某省级地图
以广东省为例
代码:
from pyecharts import options as optsfrom pyecharts.charts import Map
map = Map()map.set_global_opts(
title_opts=opts.TitleOpts(title="广东省地图"),
visualmap_opts=opts.VisualMapOpts(max_=200),
)
data = [("广州市", 200), ("深圳市", 100), ("珠海市", 50), ("汕头市", 80), ("韶关市", 70), ("佛山市", 60), ("江门市", 30), ("湛江市", 40), ("茂名市", 20), ("肇庆市", 10), ("惠州市", 90), ("梅州市", 100), ("汕尾市", 50), ("河源市", 30), ("阳江市", 20), ("清远市", 40), ("东莞市", 60), ("中山市", 70), ("潮州市", 80), ("揭阳市", 90), ("云浮市", 100)]map.add("广东省", data, "广东")
map.render("guangdong_map.html")
这段代码使用了pyecharts库中的Map类来绘制广东省地图。
1.创建一个Map对象,并使用set_global_opts方法设置图表标题和视觉映射选项。其中,max_参数指定了视觉映射的最大值。
2.创建一个包含二十一个元组的列表data,每个元组包含一个城市名称和一个整数值。
3.使用add方法将数据添加到图表中。其中,第一个参数“广东省"表示数据系列的名称,第二个参数是一个列表,包含了每个城市的名称和一个整数值。
4.使用“广东"参数指定了地图类型,并使用render方法将图表保存为HTML文件。
效果图:
5.某县级地图
代码:
from pyecharts.charts import Mapfrom pyecharts import options as opts
# 创建地图实例
map_gy = Map()
# 添加数据
map_gy.add("贵阳", [("南明区", 100), ("云岩区", 200), ("花溪区", 300), ("乌当区", 400), ("白云区", 500), ("观山湖区", 600), ("清镇市", 700), ("开阳县", 800), ("息烽县", 900), ("修文县", 1000)], "贵州")
# 设置全局参数
map_gy.set_global_opts(
title_opts=opts.TitleOpts(title="贵阳地图"),
visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=True),
)
# 渲染地图# map_gy.render("贵阳地图.html")
map_gy.render_notebook()
在这段代码中,不同上面的代码使用render方法将图表保存为HTML文件,而是使用了render_notebook()方法,所以可以在Notebook中直接看到地图,如果想保存为HTML文件,可以注释掉map_gy.render_notebook(),运行map_gy.render("贵阳地图.html")代码。
效果图:
6.词云
代码:
from pyecharts.charts import WordCloudfrom pyecharts import options as opts
words = [("Python", 100), ("Java", 80), ("C++", 60), ("JavaScript", 50), ("PHP", 40), ("HTML", 30), ("CSS", 20), ("SQL", 10)]
wordcloud = (
WordCloud()
.add("", words, word_size_range=[20, 100])
.set_global_opts(title_opts=opts.TitleOpts(title="编程语言词云图"))
)
wordcloud.render("programming_language_wordcloud.html")
代码使用pyecharts 库中的 Wordcloud类来绘制编程语言词云图。
1.创建一个包含八个元组的列表words,每个元组包含一个编程语言名称和一个整数值。
2.创建一个WordCloud对象,并使用add 方法将数据添加到图表中。其中,第一个参数“"表示数据系列的名称,第二个参数是一个列表,包含了每个词语的名称和一个整数值。
3.使用word_size_range参数设置词语的大小范围,并使用set_global_opts方法设置图表标题,并使用render方法将图表保存为HTML文件。
效果图:
四、自定义图形
Pyecharts提供了很多配置选项,可以帮助我们自定义图像。以下是一些常用的配置选项:
-title:设置图表的标题。
-title_opts:设置图表标题的样式何位置。
-legend_opts:设置图例的样式何位置。
-xlabel和ylabel:设置X轴和Y轴的标签。
-xticks和yticks:设置X轴和Y轴的刻度。
-xaxis_opts和yaxis_opts:设置X轴和Y轴的样式和位置。
-xlim和ylim:设置X轴和Y轴的范围。
-legend:设置图例。
-grid:设置是否显示网格线。
-style:设置图表的样式。
-color:设置图表的颜色。
-fontsize:设置字体的大小。
-visualmap_opts:设置视觉映射组件的样式和位置。
-dpi:设置图表的分辨率。
可以根据自己的需求,使用这些配置选项来自定义图形。
五、其他可视化库
除了Pyecharts,Python还有很多其他的可视化库。以下是一些常用的可视化库:
-Matplotlib:一个基础的可视化库,提供了各种类型的图表。
-Seaborn:一个基于Matplotlib的高级可视化库,提供了更多的图表类型和样式。
-Plotly:一个交互式可视化库,提供了各种类型的图表和动画效果。
-Bokeh:一个交互式可视化库,提供了各种类型的图表和工具栏。
六、总结
Python是一个非常强大的数据可视化工具,有很多可视化库可以选择,在本篇笔记中,我重点记了Pyecharts,它提供了丰富发图表类型和配置选项,可以帮助我们轻松地创建出好看的数据可视化图表。除此之外,还记了其他常用的可视化库,希望能够对其他人有帮助。