探索数据之美:初步学习 Python 柱状图绘制

这篇具有很好参考价值的文章主要介绍了探索数据之美:初步学习 Python 柱状图绘制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 基础柱状图

1.1 创建简单柱状图

  • pyecharts 是一个基于 Echarts 的 Python 图表库,它提供了丰富的图表类型和交互功能。可以使用使用 pyecharts 创建柱状图

首先,安装 pyecharts 库。如果没有安装,可以使用以下命令安装:

pip install pyecharts

然后,创建一个简单的柱状图:

from pyecharts import options as opts
from pyecharts.charts import Bar

# 示例数据
categories = ['Category A', 'Category B', 'Category C', 'Category D']
values = [25, 40, 30, 50]

# 创建柱状图实例
bar_chart = Bar()

# 添加数据
bar_chart.add_xaxis(categories)
bar_chart.add_yaxis("Values", values)

# 设置标题和标签
bar_chart.set_global_opts(title_opts=opts.TitleOpts(title="Basic Bar Chart"),
                          xaxis_opts=opts.AxisOpts(name="Categories"),
                          yaxis_opts=opts.AxisOpts(name="Values"))

# 渲染图表
bar_chart.render("basic_bar_chart.html")
  • 在这个示例中,首先导入 pyecharts 的必要模块。然后,创建一个 Bar 实例,代表柱状图。接着,使用 add_xaxisadd_yaxis 方法分别添加 x 轴和 y 轴的数据。还使用 set_global_opts 方法设置了标题和轴标签的选项。最后,使用 render 方法将图表渲染为 HTML 文件。

探索数据之美:初步学习 Python 柱状图绘制,驭Python神技:打造编程巨匠之路,python,学习,信息可视化

1.2 反转x和y轴

  • 可以使用pyecharts 的 Bar 类中的 reversal_axis() 方法翻转 x 轴和 y 轴
from pyecharts import options as opts
from pyecharts.charts import Bar

# 示例数据
categories = ['Category A', 'Category B', 'Category C', 'Category D']
values = [25, 40, 30, 50]

# 创建柱状图实例
bar_chart = Bar()

# 添加数据
bar_chart.add_xaxis(categories)
bar_chart.add_yaxis("Values", values)

# 设置标题和标签
bar_chart.set_global_opts(title_opts=opts.TitleOpts(title="Basic Bar Chart"),
                          xaxis_opts=opts.AxisOpts(name="Categories"),
                          yaxis_opts=opts.AxisOpts(name="Values"))
# 反转x和y轴
bar_chart.reversal_axis()

# 渲染图表
bar_chart.render("basic_bar_chart.html")

探索数据之美:初步学习 Python 柱状图绘制,驭Python神技:打造编程巨匠之路,python,学习,信息可视化

1.3 数值标签在右侧

  • 通过label_opts=LabelOpts(position=“right”)设置数值标签在右侧显示
from pyecharts import options as opts
from pyecharts.charts import Bar

# 示例数据
categories = ['Category A', 'Category B', 'Category C', 'Category D']
values = [25, 40, 30, 50]

# 创建柱状图实例
bar_chart = Bar()

# 添加数据
bar_chart.add_xaxis(categories)
bar_chart.add_yaxis("Values", values, label_opts=opts.LabelOpts(position="right"))

# 设置标题和标签
bar_chart.set_global_opts(title_opts=opts.TitleOpts(title="Basic Bar Chart"),
                          xaxis_opts=opts.AxisOpts(name="Categories"),
                          yaxis_opts=opts.AxisOpts(name="Values"))
# 反转x和y轴
bar_chart.reversal_axis()

# 渲染图表
bar_chart.render("basic_bar_chart.html")

1.4 演示结果

探索数据之美:初步学习 Python 柱状图绘制,驭Python神技:打造编程巨匠之路,python,学习,信息可视化

二 基础时间线柱状图

2.1 创建时间线

  • Timeline()-时间线
  • 柱状图的主要特点,:状图描述的是分类数据,回答的是每一个分类中有多少的问题。同时柱状图很难动态的描述一个趋势性的数据. 这里pyecharts为我们提供了一种解决方案-时间线
  • 如果说一个Bar、Line对象是一张图表的话,时间线就是创建一个一维的x轴,轴上每一个点就是一个图表对象
from pyecharts.charts import Bar, Timeline
from pyecharts.options import LabelOpts
from pyecharts.globals import ThemeType

bar1 = Bar()
bar1.add_xaxis(["中国", "美国", "英国"])
bar1.add_yaxis("GDP", [30, 30, 20], label_opts=LabelOpts(position="right"))
bar1.reversal_axis()

bar2 = Bar()
bar2.add_xaxis(["中国", "美国", "英国"])
bar2.add_yaxis("GDP", [50, 50, 50], label_opts=LabelOpts(position="right"))
bar2.reversal_axis()

bar3 = Bar()
bar3.add_xaxis(["中国", "美国", "英国"])
bar3.add_yaxis("GDP", [70, 60, 60], label_opts=LabelOpts(position="right"))
bar3.reversal_axis()

# 构建时间线对象
# timeline = Timeline()
timeline = Timeline({"theme": ThemeType.LIGHT}) #设置时间线对象

# 在时间线内添加柱状图对象
timeline.add(bar1, "点1")
timeline.add(bar2, "点2")
timeline.add(bar3, "点3")

# 自动播放设置
timeline.add_schema(
    play_interval=1000, # 自动播放的时间间隔,单位毫秒
    is_timeline_show=True, # 是否在自动播放的时候,显示时间线
    is_auto_play=True, # 是否自动播放
    is_loop_play=True  # 是否循环播放
)

# 绘图是用时间线对象绘图,而不是bar对象了
timeline.render("基础时间线柱状图.html")

2.2 时间线主题设置取值表

探索数据之美:初步学习 Python 柱状图绘制,驭Python神技:打造编程巨匠之路,python,学习,信息可视化

2.3 演示结果

探索数据之美:初步学习 Python 柱状图绘制,驭Python神技:打造编程巨匠之路,python,学习,信息可视化

三 GDP动态柱状图绘制

3.1 需求分析

探索数据之美:初步学习 Python 柱状图绘制,驭Python神技:打造编程巨匠之路,python,学习,信息可视化
简单分析后,发现最终效果图中需要:

  1. GDP数据处理为亿级
  2. 有时间轴,按照年份为时间轴的点
  3. x轴和y轴反转,同时每一年的数据只要前8名国家
  4. 有标题,标题的年份会动态更改
  5. 设置了主题为LIGHT

3.2 数据文件内容

year,GDP,rate
1960,美国,5.433E+11
1960,英国,73233967692
1960,法国,62225478000
1960,中国,59716467625
1960,日本,44307342950
1960,加拿大,40461721692

3.3 列表排序方法

列表.sort(key=选择排序依据的函数, reverse=True|False)

  • 参数key,是要求传入一个函数,表示将列表的每一个元素都传入函数中,返回排序的依据
  • 参数reverse,是否反转排序结果,True表示降序,False表示升序
my_list = [["a", 33], ["b", 55], ["c", 11]]

# 排序,基于带名函数
# def choose_sort_key(element):
#     return element[1]
#
# my_list.sort(key=choose_sort_key, reverse=False)

# 使用 sort() 方法,按子列表中的第二个元素排序
my_list.sort(key=lambda x: x[1])

print("升序排序:", my_list)
# 升序排序: [['c', 11], ['a', 33], ['b', 55]]

my_list.sort(key=lambda x: x[1], reverse=True)

print("降序排序:", my_list)
# 降序排序: [['b', 55], ['a', 33], ['c', 11]]

  • key=lambda x: x[1]Lambda 表达式是一个用于比较排序的函数,它告诉 sort() 方法按照子列表中的第二个元素进行排序

3.4 参考代码

from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType

# 读取数据
f = open("c:/1960-2019全球GDP数据.csv", "r", encoding="GB2312")
data_lines = f.readlines()
# 关闭文件
f.close()

# 删除第一条数据
data_lines.pop(0) # year,GDP,rate

# 将数据转换为字典存储,格式为:
# { 年份: [ [国家, gdp], [国家,gdp], ......  ], 年份: [ [国家, gdp], [国家,gdp], ......  ], ...... }
# { 1960: [ [美国, 123], [中国,321], ......  ], 1961: [ [美国, 123], [中国,321], ......  ], ...... }
# 先定义一个字典对象
data_dict = {}
for line in data_lines:
    year = int(line.split(",")[0])      # 年份
    country = line.split(",")[1]        # 国家
    gdp = float(line.split(",")[2])     # gdp数据
    # 判断字典里面有没有指定的key
    try:
        data_dict[year].append([country, gdp])
    except KeyError:
        data_dict[year] = []
        data_dict[year].append([country, gdp])


# 创建时间线对象
timeline = Timeline({"theme": ThemeType.LIGHT})

# 排序年份
sorted_year_list = sorted(data_dict.keys())
for year in sorted_year_list:
    data_dict[year].sort(key=lambda element: element[1], reverse=True)
    # 取出本年份前8名的国家
    year_data = data_dict[year][0:8]
    x_data = [] #countrys
    y_data = [] #gdps 
    for country_gdp in year_data:
        x_data.append(country_gdp[0])   # x轴添加国家
        y_data.append(country_gdp[1] / 100000000)   # y轴添加gdp数据

	# 构建柱状图
	bar = Bar() # 创建柱状图
	x_data.reverse() # 反转国家,使GDP最高的排在最上面
	y_data.reverse() # 同步反转GDP数据
	bar.add_xaxis(x_data)
	bar.add_yaxis("GDP(亿)", y_data, label_opts=LabelOpts(position="right"))
	# 反转x轴和y轴
	bar.reversal_axis()
	# 设置每一年的图表的标题
	bar.set_global_opts(
	    title_opts=TitleOpts(title=f"{year}年全球前8GDP数据")
	)
	timeline.add(bar, str(year)) #时间线添加一个点,和对应的bar图


# for循环每一年的数据,基于每一年的数据,创建每一年的bar对象
# 在for中,将每一年的bar对象添加到时间线中

# 设置自动播放
timeline.add_schema(
    play_interval=1000,
    is_timeline_show=True,
    is_auto_play=True,
    is_loop_play=False
)

# 绘图
timeline.render("1960-2019全球GDP前8国家.html")

3.5 运行结果

探索数据之美:初步学习 Python 柱状图绘制,驭Python神技:打造编程巨匠之路,python,学习,信息可视化文章来源地址https://www.toymoban.com/news/detail-650448.html

到了这里,关于探索数据之美:初步学习 Python 柱状图绘制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python数据可视化】matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图

    文章传送门 Python 数据可视化 matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图 matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值 matplotlib之增加图形内容:设置图例、设置中文标题、设置网格效果 matplo

    2024年01月16日
    浏览(56)
  • 探索十大经典排序算法之美(基于Python)

    在计算机科学的世界中,排序算法无疑是最为经典和基础的主题之一。排序不仅是解决各种计算问题的基础,而且在日常编程中也是必不可少的一环。Python这一富有表达力的编程语言,提供了许多强大的工具和库,使得实现和理解排序算法变得更加直观和有趣。 本篇博客将带

    2024年02月21日
    浏览(35)
  • 数据之美:探索数据可视化设计的奇妙世界

    在信息时代的浪潮中,海量的数据正在影响着我们的生活和决策。然而,数据本身虽然有力量,但如何将其有机地呈现给我们,却成为了一个挑战。数据可视化设计应运而生,它不仅让枯燥的数字变得生动,还带来了一场视觉和认知的盛宴。 数字的生动画面 数据可视化设计

    2024年02月11日
    浏览(47)
  • python如何绘制柱状图

    安装两种插件 柱状图绘制步骤 导入 matplotlib.pyplot 模块 准备数据,可以使用 numpy/pandas 整理数据 调用 pyplot.bar() 绘制柱状图 上代码 效果图 函数解析 plt.bar() 用于画柱状图,还可以使用 plt.plot() 绘制折线图 plt.xlabel() plt.ylabel() 用于标注x轴、y轴 plt.title() 用于给图片添加标题

    2024年02月11日
    浏览(39)
  • <2>【深度学习 × PyTorch】pandas | 数据预处理 | 处理缺失值:插值法 | networkx模块绘制知识图谱 | 线性代数初步

      你永远不可能真正的去了解一个人,除非你穿过ta的鞋子,走过ta走过的路,站在ta的角度思考问题,可当你真正走过ta走过的路时,你连路过都会觉得难过。有时候你所看到的,并非事实真相,你了解的,不过是浮在水面上的冰山一角。—————《杀死一只知更鸟》   🎯

    2024年02月01日
    浏览(45)
  • Python绘制柱状图堆叠图

    本文详细介绍如何使用 Matplotlib 绘制柱状堆叠图 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 开始绘制柱状堆叠图之前,我们需要生成实验数据。在本案例中,我们可以使用 NumPy 库生成两个数组 y1 和 y2 来分别表示产品 A 和 B 在五个不同城

    2024年02月07日
    浏览(43)
  • python绘制柱状图,并添加标签

    利用下面的代码,绘制柱状图。 难点:绘制标签 bar.get_height() 用于获取柱子的高度,也就是柱状图中每个柱子的高度值。在上面的代码中,我们使用这个高度值来确定要在柱子上方添加的数据标签的位置。 具体来说,这行代码: 将 height 设置为当前柱子的高度。然后,在

    2024年01月18日
    浏览(50)
  • Python之花舞盛宴:探索列表与元组之美与妙用

    在Python编程世界中,列表和元组是两个最常用的数据结构之一。无论是初学者还是经验丰富的开发者,对于这两个数据类型的掌握都至关重要。 列表和元组都是用于存储多个值的容器,但它们在性质和特性上有所不同。列表是可变的,可以随意修改、添加或删除其中的元素,

    2024年02月11日
    浏览(42)
  • 超详细的Python matplotlib 绘制柱状图

    Python 为数据展示提供了大量优秀的功能包,其中 matplotlib 模块可以方便绘制制作折线图、柱状图、散点图等高质量的数据包。 关于 matplotlib 模块,我们前期已经对matplotlib进行基本框架、以及常用方法的学习 Python matplotlib 绘制饼图_ python matplotlib绘制折线图_ python入门到进阶,

    2023年04月08日
    浏览(60)
  • 批量根据excel数据绘制柱状图

    要批量根据Excel数据绘制柱状图,可以使用Python中的pandas和matplotlib库来实现。下面是示例代码: import pandas as pd import matplotlib.pyplot as plt import os def draw_bar_chart_from_excel(file_path, x_column, y_column, output_folder):     # 读取Excel文件     df = pd.read_excel(file_path)     # 遍历数据,并绘制柱

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包