立即注册 登录
气象家园 返回首页

Rainch的个人空间 http://bbs.06climate.com/?125448 [收藏] [复制] [分享] [RSS]

日志

利用pyecharts库绘制柱状图

已有 122 次阅读2021-1-5 13:31 |个人分类:python示例| python, bar, 柱状图

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()

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

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

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

返回顶部