首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Highcharts-5-属性倾斜、区间变化、多轴柱状图

Highcharts-5-属性倾斜、区间变化、多轴柱状图

作者头像
皮大大
发布于 2021-03-01 06:50:35
发布于 2021-03-01 06:50:35
2.6K00
代码可运行
举报
运行总次数:0
代码可运行

Highcharts-5-柱状图3

本文中介绍的是3种柱状图相关设置:

  • x轴属性倾斜设置
  • 区间变化柱状图(温度为例)
  • 多轴图形

highcharts保存文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
H.save_file('highcharts')    # save result as .html file with input name (and location path)

属性倾斜的柱状图

效果

看看最终的显示效果:x轴上面的标签属性是倾斜的

代码
  • 数据要变成嵌套列表的形式
  • 倾斜方向和字体的设置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from highcharts import Highchart   # 导入库
H = Highchart(width=800, height=600)  # 设置图形的大小

data = [
        ['Shanghai', 24.2],
        ['Beijing', 20.8],
        ['Karachi', 14.9],
        ['Shenzhen', 13.7],
        ['Guangzhou', 13.1],
        ['Istanbul', 12.7],
        ['Mumbai', 12.4],
        ['Moscow', 12.2],
        ['São Paulo', 12.0],
        ['Delhi', 11.7],
        ['Kinshasa', 11.5],
        ['Tianjin', 11.2],
        ['Lahore', 11.1],
        ['Jakarta', 10.6],
        ['Dongguan', 10.6],
        ['Lagos', 10.6],
        ['Bengaluru', 10.3],
        ['Seoul', 9.8],
        ['Foshan', 9.3],
        ['Tokyo', 9.3]
    ]


options = {
    'chart': {
        'type': 'column'
    },
    'title': {
        'text': '2017年度世界大城市'
    },
    'subtitle': {
        'text': '来源: <a href="http://en.wikipedia.org/wiki/List_of_cities_proper_by_population">维基百科</a>'
    },
    'xAxis': {
        'type': 'category',
        'labels': {
            'rotation': +45,   # 控制倾斜方向:+ 表示向右倾斜
            'style': {
                'fontSize': '12px',  # 字体设置
                'fontFamily': 'Verdana, sans-serif'
            }
        }
    },
    'yAxis': {
        'min': 0,
        'title': {
            'text': '人口数(百万)',
#             'rotation': -1,
#             'style': {
#                 'fontSize': '13px',
#                 'fontFamily': 'Verdana, sans-serif'
#             }
        }
    },

    'legend': {
        'enabled': False
    },

    'tooltip': {   # 当鼠标放到柱子上去的时候显示的内容
        'pointFormat': 'Population in 2017: <b>{point.y:.1f} millions</b>'
    },

    # 重要设置项
    'plotOptions': {   # 将每个数据在柱状图上方显示出来
        'column': {
            'stacking': 'normal',
            'dataLabels': {
                'enabled': True,
                'rotation': -90,
                'color': '#0FFFFF',
                'align': 'left',
                'format': '{point.y:.1f}',
                'y': 10,   # 10 pixels down from the top
                'style': {
                    'fontSize': '20px',
                    'fontFamily': 'Verdana, sans-serif'
                }
            }
        }
    }
}

H.set_dict_options(options)   # 添加配置
H.add_data_set(data,'bar','Population')
H   # 在线生成图片
# 保存成HTML文件
# H.save_file('highcharts') # save result as .html file with input name (and location path)
改变设置

改变上面图形的效果:

  • 柱子外面显示数据
  • 向左倾斜属性数据
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from highcharts import Highchart   # 导入库
H = Highchart(width=800, height=600)  # 设置图形的大小

data = [
        ['Shanghai', 24.2],
        ['Beijing', 20.8],
        ['Karachi', 14.9],
        ['Shenzhen', 13.7],
        ['Guangzhou', 13.1],
        ['Istanbul', 12.7],
        ['Mumbai', 12.4],
        ['Moscow', 12.2],
        ['São Paulo', 12.0],
        ['Delhi', 11.7],
        ['Kinshasa', 11.5],
        ['Tianjin', 11.2],
        ['Lahore', 11.1],
        ['Jakarta', 10.6],
        ['Dongguan', 10.6],
        ['Lagos', 10.6],
        ['Bengaluru', 10.3],
        ['Seoul', 9.8],
        ['Foshan', 9.3],
        ['Tokyo', 9.3]
    ]


options = {
    'chart': {
        'type': 'column'
    },
    'title': {
        'text': '2017年度世界大城市'
    },
    'subtitle': {   # 带上了url地址,点击进入链接的文章中
        'text': '来源: <a href="http://en.wikipedia.org/wiki/List_of_cities_proper_by_population">维基百科</a>'
    },
    'xAxis': {
        'type': 'category',
        'labels': {
            'rotation': -45,   # 控制倾斜方向:+ 表示向右倾斜
            'style': {
                'fontSize': '12px',  # 字体设置
                'fontFamily': 'Verdana, sans-serif'
            }
        }
    },
    'yAxis': {
        'min': 0,
        'title': {
            'text': '人口数(百万)',
#             'rotation': -1,
#             'style': {
#                 'fontSize': '13px',
#                 'fontFamily': 'Verdana, sans-serif'
#             }
        }
    },

    'legend': {
        'enabled': False
    },

    'tooltip': {   # 当鼠标放到柱子上去的时候显示的内容
        'pointFormat': 'Population in 2017: <b>{point.y:.1f} millions</b>'
    },

    # 重要设置项
    'plotOptions': {   # 将每个数据在柱状图上方显示出来
        'column': {
            'stacking': 'normal',
            'dataLabels': {
                'enabled': True,
                'inside': False,
                'rotation': -1,
                'color': '#FFFFFF',
#                 'align': 'left',
                'format': '{point.y:.1f}',
                'y': 10,   # 10 pixels down from the top
#                 'style': {
#                     'fontSize': '15px',
#                     'fontFamily': 'Verdana, sans-serif'
#                 }
            }
        }
    }
}


H.set_dict_options(options)   # 添加配置

H.add_data_set(data,'column','Population')

H

几个重要的设置项:

区间变化柱状图

当我们知道某个属性的最大值和最小值的时候,我们可以绘制基于该最值的区间变化图。

效果

先看看实际效果图:

代码

以温度的最大值和最小值为例,说明区间变化的柱状图如何设置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from highcharts import Highchart   # 导入库
H = Highchart(width=800, height=600)  # 设置图形的大小

data = [
        [-9.9, 10.3],
        [-8.6, 8.5],
        [-10.2, 11.8],
        [-1.7, 12.2],
        [-0.6, 23.1],
        [3.7, 25.4],
        [6.0, 26.2],
        [6.7, 21.4],
        [3.5, 19.5],
        [-1.3, 16.0],
        [-8.7, 9.4],
        [-9.0, 8.6]
        ]


options = {
    'chart': {
        'type': 'columnrange',
        'inverted': True
    },

#     # Note: Prefer using linkedDescription or caption instead.
#     'accessibility': {   # 取消了该属性
#         'description': 'Image description'
#     },

    'title': {
        'text': 'title'
    },

    'subtitle': {
        'text': 'subtitle'
    },

    'xAxis': {
        'categories': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
            'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },

    'yAxis': {
        'title': {
            'text': 'Temperature ( °C )'
        }
    },

    'tooltip': {
        'valueSuffix': '°C'
    },
    'legend': {
        'enabled': False
    },
    'plotOptions': {
        'columnrange': {
            'dataLabels': {
                'enabled': True,
                'format': '{y}°C'
            }
        }
    }
}

H.set_dict_options(options)   # 添加配置

H.add_data_set(data,'columnrange','Temperatures')  # 添加数据

H

多轴柱状图

在实际的需求中,我们可能需要将多个图形放在一个画布中,并且共用一个x轴,下面?通过Highcharts来实现这个需求

效果

看看某个城市一年的天气和下雨量的数据展示效果:

  • X轴共用
  • 坐标轴在左右两侧
  • 折线图的实心点和虚点
  • 图例的设置
代码

下面是代码完整解释,主要包含:

  • 配置项的解释
  • 如何绘制多轴的图形
  • 如何进行添加数据

⚠️:数据添加的顺序和坐标轴的顺序必须保持一致

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from highcharts import Highchart
H = Highchart(width=850, height=400)

# 3组不同的数据:降雨量、气压、温度
data1 = [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
data2 = [1016, 1016, 1015.9, 1015.5, 1012.3, 1009.5, 1009.6, 1010.2, 1013.1, 1016.9, 1018.2, 1016.7]
data3 = [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]

options = {
	'chart': {
        'zoomType': 'xy'  # xy缩放变化
    },
    'title': {  # 标题设置
        'text': 'Average Monthly Weather Data for Tokyo'
    },
    'subtitle': {
        'text': 'Source: WorldClimate.com'
    },
    'xAxis': [{  # x轴数据
        'categories': ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
            'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
        'crosshair': True   # True 表示启用竖直方向的十字准星;[true, true] 启动横纵两个轴
    }],

    # y轴有3个属性设置
    'yAxis': [   # 列表中3个元素:温度、降雨量、气压
        # 1-温度
        { 'labels': {
            'format': '{value}°C',  #  温度数据的单位设置
            'style': {
                'color': 'Highcharts.getOptions().colors[2]'  # 索引为2,取出第3个图
                    }
                },
                 'title': {
                    'text': 'Temperature',  # 名字设置
                    'style': {
                        'color': 'Highcharts.getOptions().colors[2]'
                            }
                        },
                 'opposite': True  # 纵坐标默认在左边,”相反opposite“取右边的位置
        },
        # 2-降雨量
        { 'labels': {
            'format': '{value} mm',  # 单位设置
            'style': {
                'color': 'Highcharts.getOptions().colors[0]'
                    }
                },
        'gridLineWidth': 0,   # 线宽(水平方向的灰色线条)
        'title': {
            'text': 'Rainfall',   # 名字设置
            'style': {
                'color': 'Highcharts.getOptions().colors[0]'
                    }
                }
        },
        # 3-气压
        {'labels': {  # 海平面气压数据
            'format': '{value} mb',
            'style': {
                'color': 'Highcharts.getOptions().colors[1]'
                    }
                },
        'opposite': True,   # 纵坐标右侧显示
        'gridLineWidth': 0,
        'title': {
            'text': 'Sea-Level Pressure',  # 纵轴标题名字设置
            'style': {
                'color': 'Highcharts.getOptions().colors[1]'
                    }
                }
        }
    ],
    'tooltip': {   # 数据提示框,鼠标放上去显示3个坐标的数据
        'shared': True,

    },
    'legend': {
        'layout': 'vertical',  # 图例垂直显示;horizontal水平显示(并排)
        'align': 'left',  # 图例靠左
        'x': 80,  # 图例到y轴距离
        'verticalAlign': 'top',
        'y': 55,  # 图例到x轴距离
        'floating': True,  # 图例是否可以显示在图形:False表示图例和图形完全分开
        'backgroundColor': "(Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'"  # 图例背景色
    },
}
H.set_dict_options(options)

# 如何绘制多个图形
# 设置项options中3者顺序:温度(0)、降雨量(1)、气压(2)
# 添加的数据化顺序和坐标轴的顺序要保持一致

H.add_data_set(data1,  # 添加数据(降雨量)-colors[0]
               'column',  # 指定图形类型:柱状图
               'Rainfall', # 名称
               yAxis=1,
               tooltip={
                   'valueSuffix': ' mm'  # 提示数据的单位
               })

H.add_data_set(data2,  # 气压-colors[1]
               'spline',  # spline表示圆滑的曲线;line表示折线
               'Sea-Level Pressure',
               yAxis=2 ,
               marker={
                   'enabled': True   # 标记:F表示虚点;T表示实点
               },
               dashStyle='shortdot',  #  在图形中直接显示markder;设置成False则需要鼠标放上去才会出现markder点
               tooltip={
                'valueSuffix': ' mb'
               })
H.add_data_set(data3,  # 温度-colors[2]
               'spline',
               'Temperature',
               yAxis=0,
               tooltip={
                'valueSuffix': ' °C'
               })

H

数据提示框

数据提示框指的当鼠标悬停在某点上时,以框的形式提示该点的数据,比如该点的值、数据单位等。

数据提示框内提示的信息完全可以通过格式化函数动态指定;通过设置 tooltip.enabled = false 即可不启用提示框。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tooltip: {
    backgroundColor: '#FCFFC5',   // 背景颜色
    borderColor: 'black',         // 边框颜色
    borderRadius: 10,             // 边框圆角
    borderWidth: 3,               // 边框宽度
    shadow: true,                 // 是否显示阴影
    animation: true               // 是否启用动画效果
    style: {                      // 文字内容相关样式
        color: "#ff0000",
        fontSize: "12px",
        fontWeight: "blod",
        fontFamily: "Courir new"
    }
}

准十字星设置

crosshairs 有三种配置形式,最基础的是设置crosshairs = true 表示启用竖直方向准星线,三种设置方式是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
crosshairs: true          // 启用竖直方向准星线
crosshairs: [true, true]  // 同时启用竖直及水平准星线
crosshairs: [
    {            // 设置准星线样式
      width: 3,   // x轴
      color: 'green'
    },
    {  // y轴
      width: 1,
      color: "#006cee",
      dashStyle: 'longdashdot',
      zIndex: 100
    }
]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-2-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Highcharts-6-柱状图汇总
本文重点介绍的是可视化库Highcharts的相关基础知识,以及如何利用Highcharts来绘制不同场景和需求下的精美柱状图,主要内容包含:
皮大大
2021/03/01
3.7K0
Highcharts-6-柱状图汇总
Highcharts快速入门及绘制柱状图
本文重点介绍的是可视化库Highcharts的相关基础知识,以及如何利用Highcharts来绘制不同场景和需求下的精美柱状图,主要内容包含:
皮大大
2021/02/21
3.7K0
Highcharts快速入门及绘制柱状图
新手学HighCharts(二)----对比柱状图的动态加载
上一篇文章 新手学HighCharts(一)—-基本使用 中介绍了highCharts的基本使用,今天给大家介绍对比柱状图的使用,贴张图先:
令仔很忙
2018/09/14
1.3K0
新手学HighCharts(二)----对比柱状图的动态加载
Highcharts-4-堆叠柱状图
Highcharts-4-柱状图2 本文继续介绍Highcharts中柱状图的制作,主要讲解了3种柱状图的制作: 堆叠柱状图 分组堆叠柱状图 带有百分比堆叠柱状图 垂直堆叠柱状图 效果图 先看下整体的
皮大大
2021/03/01
1.8K0
Highcharts-4-堆叠柱状图
Highcharts-12-绘制基础折线图
Highcharts-12-绘制基础折线图 本文中介绍的是如何利用python-highcharts绘制折线图 指定x轴数据标签 显示点值的数据 显示最值和均值的折线图 可缩放的X轴 指定x轴数据标签
皮大大
2021/03/23
1.7K0
Highcharts-12-绘制基础折线图
Highcharts-3-绘制柱状图
Highcharts-3-绘制柱状图 本文介绍的是如何利用python-highcharts绘制柱状图 水平/垂直柱状图 蝴蝶柱状图 堆叠柱状图 带有负值柱状图 水平/垂直柱状图 图形 首先我们直接看
皮大大
2021/03/01
2.6K0
Highcharts-3-绘制柱状图
鸿蒙5莓创折线与柱状图组合图表属性用法详解
大家好,欢迎回来鸿蒙5莓创图表组件的专场,我们这一期来讲解McLineBarChart组合图组件的基础属性详解。本篇将深度拆解每个属性的用法场景,通过完整代码案例帮助开发者快速掌握核心配置技巧。
陈杨
2025/06/25
770
Highcharts-10-饼图颜色设置
实现上面的效果主要是通过'color': 'Highcharts.getOptions().colors[0]方法。当colors[i]中的i取相同的值,则颜色会相同。
皮大大
2021/03/07
2.7K0
新手学HighCharts(一)----基本使用
最近做的项目需要用到数据分析,图表显示,之前做项目的时候用到过highcharts,不过也只是简单的会用而已,然后再网上查了查highcharts的优点:
令仔很忙
2018/09/14
2.5K0
新手学HighCharts(一)----基本使用
pyEcharts 大儿子,会动的柱状图首先登场
pyEcharts 是一款将 Python 和 Echars 结合起来的强大可视化神器,大家近期看到的诸如疫情路线图都可以分分钟实现!是不是已经迫不及待了,接下来小编带领大家一步步走进 pyecharts 的世界,各种神图手到擒来!!
数据山谷
2020/11/24
6760
pyEcharts 大儿子,会动的柱状图首先登场
Highcharts-7-下钻图制作
下钻表示的是通过层级的方式来展示数据,比如我们想查看国内人口数的占比情况,我们可以先看各个省份的情况,接着我们想看具体某个省中各个地级市的占比,这就是通过下钻方式实现。
皮大大
2021/03/04
1.8K0
Highcharts-7-下钻图制作
鸿蒙5莓创折线与柱状图series属性详解
大家好,欢迎回来鸿蒙5莓创图表组件的专场,我们这一期来讲解McLineBarChart组合图中最重要的series属性。series属性决定了图表中每个系列的表现形式和行为,是图表配置中最核心的部分。
陈杨
2025/06/25
700
HightCharts 熟悉不?Python也可以绘制同款~~
今天小编给大家推荐一个超强交互式可视化绘制工具-python-highcharts,熟悉HightCharts绘图软件的小伙伴对这个不会陌生,python-highcharts就是使用Python进行Highcharts项目绘制,简单的说就是实现Python和Javascript之间的简单转换层,话不多说,我们直接进行介绍,具体包括以下几个方面:
DataCharm
2022/05/24
1K0
HightCharts 熟悉不?Python也可以绘制同款~~
Highcharts-9-双饼图绘制
Highcharts-9-双饼图制作 本文中只介绍一种和饼图相关的图形:双饼图 双饼图 效果 代码 # -*- coding: utf-8 -*- """ 说明:制作双饼图 作者:Peter """
皮大大
2021/03/07
1.3K0
R语言实现与Javascript交互的可视化展示
R语言在可视化的展示上具有很强大的功能,并且可以跟很多语言进行结合使用构建交互的可视化图像。今天给大家介绍下在R语言中如何生成基于Javascript的可视化界面。首先需要用的R包是rCharts,大家看下包的安装:
一粒沙
2021/08/23
1.3K0
R语言实现与Javascript交互的可视化展示
Highcharts-8-基础饼图绘制
本文中介绍的是如何在jupyter notebook中通过python-highcharts绘制常见的饼图:
皮大大
2021/03/07
2.1K0
G2 基本使用 折线图 柱状图 饼图 基本配置
  1.浏览器引入 <!-- 引入在线资源 --> <script src="https://gw.alipayobjects.com/os/lib/antv/g2/3.4.10/dist/g2.min.js"></script>
用户1197315
2019/05/25
5K0
Django教程第5章 | Web开发实战-数据统计图表(echarts、highchart)
echarts方案:通过jQuery自带ajax向服务端发送请求获取折线图、柱状图、饼图数据。
仲君Johnny
2024/01/24
5420
Django教程第5章 | Web开发实战-数据统计图表(echarts、highchart)
強大的jQuery Chart组件-Highcharts
Highcharts是一个制作图表的纯Javascript类库,主要特性如下: 兼容性:兼容当今所有的浏览器,包括iPhone、IE和火狐等等; 对个人用户完全免费; 纯JS,无BS; 支持大部分的图表类型:直线图,曲线图、区域图、区域曲线图、柱状图、饼装图、散布图; 跨语言:不管是PHP、Asp.net还是Java都可以使用,它只需要三个文件:一个是Highcharts的核心文件highcharts.js,还有a canvas emulator for IE和Jquery类库或者MooTools类库; 提
张善友
2018/01/22
2.4K0
強大的jQuery Chart组件-Highcharts
Pyecharts象形柱状图的艺术与技巧
在数据可视化领域,象形柱状图是一种引人注目、生动直观的图表类型,能够通过形象的图形呈现数据,使得信息更为清晰易懂。Pyecharts是一款基于Echarts的Python图表库,提供了丰富的图表类型和灵活的参数设置,为开发者提供了绘制各种炫酷图表的可能性。本文将深入介绍Pyecharts中绘制象形柱状图的参数,并通过实例演示如何创建多样化的炫酷象形柱状图。
一键难忘
2024/02/01
3300
推荐阅读
相关推荐
Highcharts-6-柱状图汇总
更多 >
LV.5
这个人很懒,什么都没有留下~
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验