当前位置:   article > 正文

柱状图的构建-Python

柱状图的构建-Python

师从黑马程序员

基础柱状图的构建

通过Bar构建基础柱状图

反转x和y轴

数值标签放在右侧

  1. from pyecharts.charts import Bar
  2. from pyecharts.options import LabelOpts
  3. #使用Bar构建基础柱状图
  4. bar=Bar()
  5. #添加x轴的数据
  6. bar.add_xaxis(["中国","美国","英国"])
  7. #添加y轴的数据 #设置数值标签在右侧
  8. bar.add_yaxis("GDP",[30,20,10],label_opts=LabelOpts(position="right"))
  9. #反转x轴和y轴
  10. bar.reversal_axis()
  11. #绘图
  12. bar.render("基础柱状图.html")

基础时间线柱状图

创建时间线

自动播放

时间线设置主题

  1. from pyecharts.charts import Bar,Timeline
  2. from pyecharts.options import LabelOpts
  3. from pyecharts.globals import ThemeType
  4. bar1=Bar()
  5. bar1.add_xaxis(["中国","美国","英国"])
  6. bar1.add_yaxis("GDP",[30,30,20],label_opts=LabelOpts(position="right"))
  7. bar1.reversal_axis()
  8. bar2=Bar()
  9. bar2.add_xaxis(["中国","美国","英国"])
  10. bar2.add_yaxis("GDP",[50,50,50],label_opts=LabelOpts(position="right"))
  11. bar2.reversal_axis()
  12. bar3=Bar()
  13. bar3.add_xaxis(["中国","美国","英国"])
  14. bar3.add_yaxis("GDP",[70,60,60],label_opts=LabelOpts(position="right"))
  15. bar3.reversal_axis()
  16. #构造时间线对象
  17. timeline=Timeline({"theme":ThemeType.LIGHT})
  18. #在时间线内部添加柱状图对象
  19. timeline.add(bar1,"点1")
  20. timeline.add(bar2,"点2")
  21. timeline.add(bar3,"点3")
  22. #自动播放设置
  23. timeline.add_schema(
  24. play_interval=750,
  25. is_timeline_show=False,
  26. is_auto_play=True,
  27. is_loop_play=True
  28. )
  29. #主题设置
  30. #绘图 #绘图使用时间线对象绘图,二不是bar对象了
  31. timeline.render("基础时间线柱状图.html")

GDP动态柱状图绘制

列表的sort方法

  1. my_list=[["a",33],["b",55],["c",11]]
  2. #带名函数
  3. # def choose_sort_key(element):
  4. # return element[1]#意思是以下标为1的元素作为排序的依据
  5. # my_list.sort(key=choose_sort_key,reverse=True)
  6. # #默认排序方法为从小到大,reverse=True使排序从大到小
  7. # print(my_list)
  8. #匿名函数
  9. my_list.sort(key=lambda element:element[1],reverse=True)
  10. print(my_list)

需求分析

处理数据

  1. from pyecharts.charts import Bar,Timeline
  2. from pyecharts.options import *
  3. from pyecharts.globals import ThemeType
  4. f=open("D:/1960-2019全球GDP数据.csv","r",encoding="GB2312")
  5. data_lines=f.readlines()
  6. #关闭文件
  7. f.close()
  8. #删除第一条数据
  9. data_lines.pop(0)
  10. #将数据转化为字典存储,格式为:
  11. #{年份:[[国家,gdp],[国家,gdp],......],[[国家,gdp],[国家,gdp],......],........}
  12. #先定义一个字典对象
  13. data_dict={}
  14. for line in data_lines:
  15. year = int(line.split(",")[0])
  16. country = str(line.split(",")[1])
  17. gdp = float(line.split(",")[2])
  18. #如何判断字典中有没有指定的key
  19. try:
  20. data_dict[year].append([country,gdp])
  21. except KeyError:
  22. data_dict[year]=[]
  23. data_dict[year].append([country,gdp])
  24. #创建时间线对象
  25. timeline=Timeline({"theme":ThemeType.LIGHT})
  26. #排序年份
  27. sorted_year_list=sorted(data_dict.keys())
  28. for year in sorted_year_list:
  29. #排序GDP
  30. data_dict[year].sort(key=lambda element:element[1],reverse=True)
  31. #取出本年份前8名的国家
  32. year_data=data_dict[year][0:8]
  33. x_data=[]
  34. y_data=[]
  35. for country_gdp in year_data:
  36. x_data.append(country_gdp[0]) #x轴添加国家
  37. y_data.append(country_gdp[1]/100000000) #Y轴添加gdp数据
  38. #构建柱状图
  39. bar=Bar()
  40. x_data.reverse()
  41. y_data.reverse()
  42. bar.add_xaxis(x_data)
  43. bar.add_yaxis("GDP(亿)",y_data,label_opts=LabelOpts(position="right"))
  44. #反转x轴和y轴
  45. bar.reversal_axis()
  46. #设置每一年的图表的标题
  47. bar.set_global_opts(
  48. title_opts=TitleOpts(title=f"{year}年全球前8GDP数据")
  49. )
  50. timeline.add(bar,str(year))#bar是数据,名字是year
  51. #for循环每一年的数据,创建每一年的bar对象
  52. #在for中,将每一年的bar对象添加到时间线中
  53. #设置时间线自动播放
  54. timeline.add_schema(
  55. play_interval=1000,
  56. is_timeline_show=True,
  57. is_auto_play=True,
  58. is_loop_play=False
  59. )
  60. #绘图
  61. timeline.render("1960-2019全球GDP前8的国家.html")

若有侵权,请联系作者

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/424865
推荐阅读
相关标签
  

闽ICP备14008679号