爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 14111|回复: 0

[源代码] 利用pyecharts库绘制柱状图

[复制链接]

新浪微博达人勋

发表于 2021-1-5 13:35:17 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 Rainch 于 2021-1-5 13:47 编辑

import xlrd
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType

bar = Bar()
"""
x=["浑南", "沈北", "苏家屯", "辽中", "新民","康平", "法库"]
y1=[5, 12, 18, 7, 15, 7, 9,10]
bar.add_xaxis(x)
bar.add_yaxis("10月21日降雨量", y1,itemstyle_opts = opts.ItemStyleOpts(color = "#106473"))
"""

# execl文件读取方法
# 数据格式 年        浑南        新民        辽中        康平        法库        沈北        苏家屯

filename="沈阳常规气象站年降水量(1951-2019).xlsx"
book = xlrd.open_workbook(filename)
sheet1 = book.sheets()[0]
nrows = sheet1.nrows
# print('表格总行数',nrows)
ncols = sheet1.ncols
# print('表格总列数',ncols)

row1_values = sheet1.row_values(0)
#print('第1列值',col1_values)


col1_values = sheet1.col_values(colx=0,start_rowx=1) # 年代
x=col1_values
#print('第1行值',row1_values)

col2_values = sheet1.col_values(colx=1,start_rowx=1) # 浑南
col3_values = sheet1.col_values(colx=2,start_rowx=1)  # 新民
col4_values = sheet1.col_values(colx=3,start_rowx=1)  #辽中
col5_values = sheet1.col_values(colx=4,start_rowx=1)  #康平
col6_values = sheet1.col_values(colx=5,start_rowx=1)  # 法库
col7_values = sheet1.col_values(colx=6,start_rowx=1)  #沈北
col8_values = sheet1.col_values(colx=7,start_rowx=1)  #苏家屯


#print('第2列值',col2_values)

y1=col2_values
y2=col3_values
y3=col4_values
y4=col5_values
y5=col6_values
y6=col7_values
y7=col8_values

'''
#逐项例举法
bar.add_xaxis(x)
bar.add_yaxis("年降雨量", y1,itemstyle_opts = opts.ItemStyleOpts(color = "#106473"))
'''

# 链式写法
bar = (
    Bar(init_opts=opts.InitOpts(width='1200px', height='800px',theme=ThemeType.LIGHT))  # LIGHT
     .add_xaxis(x)
     .add_yaxis("浑南", y1)
     .add_yaxis("新民", y2)
     .add_yaxis("辽中", y3)
     .add_yaxis("康平", y4)
     .add_yaxis("法库", y5)
     .add_yaxis("沈北", y6)
     .add_yaxis("苏家屯", y7)
    #下行的设置 与+6的设置方法相同,增加了更详细的参数
     .set_global_opts(title_opts=opts.TitleOpts(title="降雨量", subtitle="mm"))   

)

# 标注标题、放大滑块
bar.set_global_opts(title_opts=opts.TitleOpts(title="降雨量", subtitle="mm",
                                              title_link = "https://www.baidu.com",
                                              pos_left = 'left'),                                         
                    xaxis_opts=opts.AxisOpts( name_rotate = 90),
                   datazoom_opts = opts.DataZoomOpts(is_show = True),
                   legend_opts = opts.LegendOpts(pos_left = "right"),)




# 标注最大值和最小值
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=False),markpoint_opts = opts.MarkPointOpts(
                       data = [opts.MarkPointItem(type_ = "max", name = "最大值"),
                           opts.MarkPointItem(type_ = "min", name = "最小值"),  
                  ]))

# render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
# 也可以传入路径参数,如 bar.render("mycharts.html")
bar.render("bar_shengyang_7.html")
bar.render_notebook()

------------------------------------------------------------------------------
代码所用数据
链接:https://pan.baidu.com/s/1uPAxIFp6-8e3e2qp9Jm9dw
提取码:ypbn



柱状雨量图

柱状雨量图
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表