精华内容
下载资源
问答
  • Qt界面开发(一)(各种控件以及图表

    万次阅读 多人点赞 2017-12-28 21:51:56
    注:资源主要来源:http://www.qtcn.org/bbs/u/110085... 如若侵权,请联系删除。 本文只是将作品集合到起来,方便大家一起学习。 ... Qt界面开发(各种控件以及图表) 1.Qt简洁窗体 源代码链接:点击打开链接 2....

    注:资源主要来源http://www.qtcn.org/bbs/u/110085 (刘大神)

    如若侵权,请联系删除。

    本文只是将作品集合到起来,方便大家一起学习。
    资源集合已经放到 链接:https://pan.baidu.com/s/1sVvQE8uDujVxeKVVSoxyYw 密码:wslk

    Qt界面开发(各种控件以及图表)

    1.Qt简洁窗体

    源代码链接:点击打开链接

    2.QT漂亮界面

     

    源代码链接:点击打开链接

    3.音乐播放器界面

    源代码链接:点击打开链接

    4.六宫格界面

    源代码链接:点击打开链接

    5.漂亮通用界面

    源代码链接:点击打开链接

    6.净化设备管理

    源代码链接:点击打开链接

    7.树形界面通用图

    源代码链接:点击打开链接

    8.窗口主框架

    源代码链接:点击打开链接

    9.tcp文件传输

    源代码链接:点击打开链接

    10.综合组件的界面

    源代码链接:点击打开链接

    11.Qt动态圆形进度条

    源代码链接:点击打开链接

    12.动态绘制曲线

     

    源代码链接:点击打开链接

    13.二维码解析

    源代码链接:点击打开链接

    14.自定义UI演示

    源代码链接:点击打开链接

    15.Widget例子

    源代码链接:点击打开链接

    16.俄罗斯方块

    源代码链接:点击打开链接

    17.Qt360 界面

    源代码链接:点击打开链接

    18.正则表达式

    源代码链接:点击打开链接

    19.绘制(平滑与折线)曲线

    源代码链接:点击打开链接

    20.Tab选项界面

    源代码链接:点击打开链接

    21.十二宫格界面

    源代码链接:点击打开链接

    22.网络调试助手

    源代码链接:点击打开链接

    23.List树形列表界面

    源代码链接:点击打开链接

    24.Ping界面实现

    源代码链接:点击打开链接

    25.脉冲维修工具界面

    源代码链接:点击打开链接

    26.Qt个性时钟

    源代码链接:点击打开链接

    27.Qt漂亮日历

    源代码链接:点击打开链接

    28.Qt个性按钮

    源代码链接:点击打开链接

    29.Led数字显示

    源代码链接:点击打开链接

    30.多种组件界面

    源代码链接:点击打开链接

    31.英语词典

    源代码链接:点击打开链接

    32.绝对牛逼的计算器

    源代码链接:点击打开链接

    33.Led显示以及list列表

    源代码链接:点击打开链接

    34.Qt(动态数据模拟)曲线

    源代码链接:点击打开链接

    35.Tab飘逸界面

    源代码链接:点击打开链接

    36.滑动显示图片

    源代码链接:点击打开链接

    37.各种Chart例子

    源代码链接:点击打开链接

    38.背景图界面

    源代码链接:点击打开链接

    39.多种样式的进度条

    源代码链接:点击打开链接

    40.360UI完美界面

    源代码链接:点击打开链接

    41.360安防系统

     

    源代码链接:点击打开链接

    42.机器人聊天

    源代码链接:点击打开链接

    43.各种chart图表

    源代码链接:点击打开链接

    44.Qt图片预览(图形列表)

    源代码链接:点击打开链接

    45.动态显示文本的label

    源代码链接:点击打开链接

    46.Qt2048游戏

    源代码链接:点击打开链接

    47.Animation按钮

    源代码链接:点击打开链接

    48.模拟电量进度条

    源代码链接:点击打开链接

    49.网易云音乐界面

    源代码链接:点击打开链接

    50.多种样式日历

    源代码链接:点击打开链接

    51.myseria串口

    源代码链接:点击打开链接

    52.绘制魔法鱼儿

    源代码链接:点击打开链接

     

     

     

     

     

    展开全文
  • excel的图表插件,插件自带图表模板,以及主题设置等。可以一键生成图表
  • 对比分析图表模板Excel图表HR精选图表模板.xlsx
  • 动态图表HTML5 svg阶梯图表_html5阶梯数据图表 动态图表HTML5 svg阶梯图表_html5阶梯数据图表 动态图表HTML5 svg阶梯图表_html5阶梯数据图表
  • 自动图表化问卷调查设计表Excel图表HR精选图表模板.xlsx
  • D3图表示例-线型图表面型图表柱状图表
  • jschart图表插件绘制各种图表工具代码 jschart图表插件绘制各种图表工具代码 jschart图表插件绘制各种图表工具代码
  • 解压密码:RJ4587 之前我已经向大家分享了几款HTML5图表应用,HTML5 Canvas图表应用RGraph、HTML5 Canvas饼状图表。利用这些HTML5图表可以很方便的展示各种数据,而且非常直观。今天要向大家分享一款HTML5折线图表...
  • 并列关系图表,ThemeGallery ppt图表——长方形图表
  • JS插件实现图表显示(曲线图表、柱形图表、饼状图表
  • Highcharts-3.0.1,漂亮的统计图表,flash统计图表,json统计图表,网页统计图表,web统计图表
  • 间隔圆环图表,间隔线连圆环图表,间隔线连半圆圆环图表,@只为设计原创ppt图表
  • Chart类:除复合图表之外所有常用图表类的基类,它的父类为Base类。 RectChart类:直角坐标系图表类的基类,父类为Chart类。 Chart3D类:3D图表类的基类,父类为Chart类。 ThreeAxisChart类:三维坐标系图表基类,...

    当前pyecharts的版本为1.9.0。

    pyecharts/charts/chart.py模块结构

    pyecharts/charts/chart.py模块主要元素为4个类:

    • Chart类:除复合图表之外所有常用图表类的基类,它的父类为Base类。
    • RectChart类:直角坐标系图表类的基类,父类为Chart类。
    • Chart3D类:3D图表类的基类,父类为Chart类。
    • ThreeAxisChart类:三维坐标系图表基类,父类为Chart3D类。

    pyecharts常用图表类的继承关系

    在这里插入图片描述

    Chart

    Chart类是除复合图表之外所有常用图表类的基类,它的父类为Base类。
    Chart类的签名为class Chart(init_opts)Chart类的参数主要继承自Base类。Chart类的方法如下:

    • set_global_opts:设置全局配置。
    • set_series_opts:设置系列配置。
    • add_dataset:添加数据集配置。
    • set_colors:设置颜色集。

    这些方法的原理相似,都是将接收的参数更新到options属性中(ECharts配置项)。

    Chart类源码

    class Chart(Base):
        def __init__(self, init_opts: types.Init = opts.InitOpts()):
            if isinstance(init_opts, dict):
                temp_opts = opts.InitOpts()
                temp_opts.update(**init_opts)
                init_opts = temp_opts
            super().__init__(init_opts=init_opts)
            self.colors = (
                "#c23531 #2f4554 #61a0a8 #d48265 #749f83 #ca8622 #bda29a #6e7074 "
                "#546570 #c4ccd3 #f05b72 #ef5b9c #f47920 #905a3d #fab27b #2a5caa "
                "#444693 #726930 #b2d235 #6d8346 #ac6767 #1d953f #6950a1 #918597"
            ).split()
            if init_opts.opts.get("theme") == ThemeType.WHITE:
                self.options.update(color=self.colors)
            self.options.update(
                series=[],
                legend=[{"data": [], "selected": dict()}],
                tooltip=opts.TooltipOpts().opts,
            )
            self._chart_type: Optional[str] = None
    
        def set_colors(self, colors: Sequence[str]):
            self.options.update(color=colors)
            return self
    
        def set_series_opts(
            self,
            label_opts: types.Label = None,
            linestyle_opts: types.LineStyle = None,
            splitline_opts: types.SplitLine = None,
            areastyle_opts: types.AreaStyle = None,
            axisline_opts: types.AxisLine = None,
            markpoint_opts: types.MarkPoint = None,
            markline_opts: types.MarkLine = None,
            markarea_opts: types.MarkArea = None,
            effect_opts: types.Effect = opts.EffectOpts(),
            tooltip_opts: types.Tooltip = None,
            itemstyle_opts: types.ItemStyle = None,
            **kwargs,
        ):
            for s in self.options.get("series"):
                if label_opts:
                    s.update(label=label_opts)
    
                if linestyle_opts:
                    s.update(lineStyle=linestyle_opts)
    
                if splitline_opts:
                    s.update(splitLine=splitline_opts)
    
                if areastyle_opts:
                    s.update(areaStyle=areastyle_opts)
    
                if axisline_opts:
                    s.update(axisLine=axisline_opts)
    
                if markpoint_opts:
                    s.update(markPoint=markpoint_opts)
    
                if markline_opts:
                    s.update(markLine=markline_opts)
    
                if markarea_opts:
                    s.update(markArea=markarea_opts)
    
                if effect_opts:
                    s.update(rippleEffect=effect_opts)
    
                if tooltip_opts:
                    s.update(tooltip=tooltip_opts)
    
                if itemstyle_opts:
                    s.update(itemStyle=itemstyle_opts)
    
                if len(kwargs) > 0:
                    s.update(kwargs)
    
            return self
    
        def _append_legend(self, name, is_selected):
            self.options.get("legend")[0].get("data").append(name)
            self.options.get("legend")[0].get("selected").update({name: is_selected})
    
        def _append_color(self, color: Optional[str]):
            if color:
                self.colors = [color] + self.colors
                if self.theme == ThemeType.WHITE:
                    self.options.update(color=self.colors)
    
        def set_global_opts(
            self,
            title_opts: types.Title = opts.TitleOpts(),
            legend_opts: types.Legend = opts.LegendOpts(),
            tooltip_opts: types.Tooltip = None,
            toolbox_opts: types.Toolbox = None,
            brush_opts: types.Brush = None,
            xaxis_opts: types.Axis = None,
            yaxis_opts: types.Axis = None,
            visualmap_opts: types.VisualMap = None,
            datazoom_opts: types.DataZoom = None,
            graphic_opts: types.Graphic = None,
            axispointer_opts: types.AxisPointer = None,
        ):
            if tooltip_opts is None:
                tooltip_opts = opts.TooltipOpts(
                    formatter=ToolTipFormatterType.get(self._chart_type, None)
                )
            self.options.update(
                title=title_opts,
                toolbox=toolbox_opts,
                tooltip=tooltip_opts,
                visualMap=visualmap_opts,
                dataZoom=datazoom_opts,
                graphic=graphic_opts,
                axisPointer=axispointer_opts,
            )
    
            if brush_opts is not None:
                self.options.update(brush=brush_opts)
    
            if isinstance(legend_opts, opts.LegendOpts):
                legend_opts = legend_opts.opts
            for _s in self.options["legend"]:
                _s.update(legend_opts)
    
            if xaxis_opts and self.options.get("xAxis", None):
                if isinstance(xaxis_opts, opts.AxisOpts):
                    xaxis_opts = xaxis_opts.opts
                self.options["xAxis"][0].update(xaxis_opts)
    
            if yaxis_opts and self.options.get("yAxis", None):
                if isinstance(yaxis_opts, opts.AxisOpts):
                    yaxis_opts = yaxis_opts.opts
                self.options["yAxis"][0].update(yaxis_opts)
    
            return self
    
        def add_dataset(
            self,
            source: types.Union[types.Sequence, types.JSFunc] = None,
            dimensions: types.Optional[types.Sequence] = None,
            source_header: types.Optional[bool] = None,
        ):
            self.options.update(
                dataset={
                    "source": source,
                    "dimensions": dimensions,
                    "sourceHeader": source_header,
                }
            )
            return self
    

    RectChart

    RectChart类是直角坐标系图表类的基类,父类为Chart类。
    RectChart类的签名为class RectChart(init_opts)Chart类的参数主要继承自Base类。Chart类的方法如下:

    • extend_axis:扩展 X/Y 轴。

      def extend_axis(
          # 扩展 X 坐标轴数据项
          xaxis_data: Sequence = None,
      
          # 扩展 X 坐标轴配置项,参考 `global_options.AxisOpts`
          xaxis: Union[opts.AxisOpts, dict, None] = None,
      
          # 新增 Y 坐标轴配置项,参考 `global_options.AxisOpts`
          yaxis: Union[opts.AxisOpts, dict, None] = None,
      )
      
    • add_xaxis:新增 X 轴数据。

      def add_xaxis(
          # X 轴数据项
          xaxis_data: Sequence
      )
      
    • reversal_axis:翻转xy轴。

    • overlap:叠加多个基本图表类实例。

      def overlap(
          chart: Base
      )
      

    这些方法的原理相似,都是将接收的参数更新到options属性中(ECharts配置项)。

    RectChart类源码

    class RectChart(Chart):
        def __init__(self, init_opts: types.Init = opts.InitOpts()):
            super().__init__(init_opts=init_opts)
            self.options.update(xAxis=[opts.AxisOpts().opts], yAxis=[opts.AxisOpts().opts])
    
        def extend_axis(
            self,
            xaxis_data: Sequence = None,
            xaxis: types.Axis = None,
            yaxis: types.Axis = None,
        ):
            if xaxis is not None:
                if isinstance(xaxis, opts.AxisOpts):
                    xaxis = xaxis.opts
                xaxis.update(data=xaxis_data)
                self.options["xAxis"].append(xaxis)
            if yaxis is not None:
                if isinstance(yaxis, opts.AxisOpts):
                    yaxis = yaxis.opts
                self.options["yAxis"].append(yaxis)
            return self
    
        def add_xaxis(self, xaxis_data: Sequence):
            self.options["xAxis"][0].update(data=xaxis_data)
            self._xaxis_data = xaxis_data
            return self
    
        def reversal_axis(self):
            self.options["yAxis"][0]["data"] = self._xaxis_data
            self.options["xAxis"][0]["data"] = None
            return self
    
        def overlap(self, chart: Base):
            self.options.get("legend")[0].get("data").extend(
                chart.options.get("legend")[0].get("data")
            )
            self.options.get("legend")[0].get("selected").update(
                chart.options.get("legend")[0].get("selected")
            )
            self.options.get("series").extend(chart.options.get("series"))
            return self
    

    Chart3D

    Chart3D类是3D图表的基类,父类为Chart类。
    Chart3D类的签名为class Chart3D(init_opts)Chart3D类的参数和方法主要继承自Chart类。
    最主要的变化就是增加了echarts-gl依赖库用于绘制3D图表。

    Chart3D类源码

    class Chart3D(Chart):
         def __init__(self, init_opts: types.Init = opts.InitOpts()):
            init_opts.renderer = RenderType.CANVAS
            super().__init__(init_opts)
            self.js_dependencies.add("echarts-gl")
            self.options.update(visualMap=opts.VisualMapOpts().opts)
            self._3d_chart_type: Optional[str] = None  # 3d chart type,don't use it directly
    

    ThreeAxisChart

    ThreeAxisChart类:三维坐标系图表基类,父类为Chart3D类。
    ThreeAxisChart类的参数和方法主要继承自Chart3D类。
    最主要的变化就是增加了add方法,add方法的签名为:

    def add(
        # 系列名称,用于 tooltip 的显示,legend 的图例筛选。
        series_name: str,
    
        # 系列数据
        data: Sequence,
    
        # 三维柱状图中三维图形的着色效果。
        # color:只显示颜色,不受光照等其它因素的影响。
        # lambert:通过经典的 lambert 着色表现光照带来的明暗。
        # realistic:真实感渲染,配合 light.ambientCubemap 和 postEffect 使用可以让展示的画面效果和质感有质的提升。
        # ECharts GL 中使用了基于物理的渲染(PBR) 来表现真实感材质。
        shading: Optional[str] = None,
    
        # 图元配置项,参考 `series_options.ItemStyleOpts`
        itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None
    
        # 标签配置项,参考 `series_options.LabelOpts`
        label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(is_show=False),
    
        # 3D X 坐标轴配置项,参考 `Axis3DOpts`
        xaxis3d_opts: Union[opts.Axis3DOpts, dict] = opts.Axis3DOpts(type_="category"),
    
        # 3D Y 坐标轴配置项,参考 `Axis3DOpts`
        yaxis3d_opts: Union[opts.Axis3DOpts, dict] = opts.Axis3DOpts(type_="category"),
    
        # 3D Z 坐标轴配置项,参考 `Axis3DOpts`
        zaxis3d_opts: Union[opts.Axis3DOpts, dict] = opts.Axis3DOpts(type_="value"),
    
        # 三维笛卡尔坐标系配置项,参考 `Grid3DOpts`
        grid3d_opts: Union[opts.Grid3DOpts, dict] = opts.Grid3DOpts(),
    )
    

    ThreeAxisChart类源码

    class ThreeAxisChart(Chart3D):
        def add(
            self,
            series_name: str,
            data: Sequence,
            shading: Optional[str] = None,
            itemstyle_opts: types.ItemStyle = None,
            label_opts: types.Label = opts.LabelOpts(is_show=False),
            xaxis3d_opts: types.Axis3D = opts.Axis3DOpts(type_="category"),
            yaxis3d_opts: types.Axis3D = opts.Axis3DOpts(type_="category"),
            zaxis3d_opts: types.Axis3D = opts.Axis3DOpts(type_="value"),
            grid3d_opts: types.Grid3D = opts.Grid3DOpts(),
            encode: types.Union[types.JSFunc, dict, None] = None,
        ):
            self.options.get("legend")[0].get("data").append(series_name)
            self.options.update(
                xAxis3D=xaxis3d_opts,
                yAxis3D=yaxis3d_opts,
                zAxis3D=zaxis3d_opts,
                grid3D=grid3d_opts,
            )
    
            self.options.get("series").append(
                {
                    "type": self._3d_chart_type,
                    "name": series_name,
                    "data": data,
                    "label": label_opts,
                    "shading": shading,
                    "itemStyle": itemstyle_opts,
                    "encode": encode,
                }
            )
            return self
    
    展开全文
  • 解压密码:RJ4587 大家一定还记得之前分享过的几款HTML5图表插件吧,这款HTML5/jQuery雷达动画图表非常有特色,这款华丽的HTML5图表 可展示实时数据功能又十分强大。今天我们又要给大家分享一款非常酷的HTML5 3D图表...
  • html5图表控件制作曲线柱形统计图表代码 html5图表控件制作曲线柱形统计图表代码 html5图表控件制作曲线柱形统计图表代码
  • 解压密码:RJ4587 之前我们分享过好几款不错的HTML5柱状图表了,像这款HTML5/CSS3水平柱状图表,非常简单实用的图表。今天我们要再来分享一款HTML5柱状图表,这款图表插件可以将多张图表的数据合并成一张图表显示,...
  • 解压密码:RJ4587 之前我们介绍过不少形形色色的HTML5图表了,像这款HTML5折线图表Aristochart是一款很不错的折线图表,这款HTML5 Canvas饼状图表也很酷。今天我们再来分享一款很特别的HTML5图表,它是利用HTML5和...
  • echarts 调整图表大小的方法

    万次阅读 多人点赞 2018-11-23 12:01:31
    echarts的图表是画在canvas上的, 可以通过grid设置来调整图表与canvas的间距: myChart.setOption({ option: { title: { text: 'ECharts 入门示例' }, //设置canvas内部表格的内距 grid:{ x:5...

    echarts的图表是画在canvas上的, 可以通过grid设置来调整图表与canvas的间距:

    myChart.setOption({  
    	   option: {
    	   	title: {
    	       	     text: 'ECharts 入门示例'
    	   	},
    	
    	   //设置canvas内部表格的内距
    	   	grid:{
                      x:50,
                      y:50,
                      x2:50,
                      y2:60,
                      borderWidth:10
    	       }
                    ....
    

    在这里插入图片描述

    展开全文
  • 时间滚动查看Echart图表、自由缩放图表,实现实时的监控功能、其他图表请查看百度Echarts官网
  • echarts-经典图表代码整理,html代码,可以非常简单地引用和使用。通过常用例子高效率地学习和使用百度echarts图表
  • 学习图表

    2011-10-15 14:54:59
    学习图表学习图表学习图表学习图表学习图表学习图表
  • 当前pyecharts的版本为1.9.0。...│ │ chart.py # 基于base类定义了基本图表基类Chart、直角坐标系图表RectChart、3D图表基类Chart3D、 │ │ mixins.py # 定义多重继承基类ChartMixin、CompositeMixin │ │ __

    当前pyecharts的版本为1.9.0。

    charts包结构

    charts包位于pyecharts包顶级目录中,用于定义图表类。charts包的结构如下:

    │
    ├─charts # 图表类包
    │  │  base.py # 定义了图表基类Base
    │  │  chart.py # 基于base类定义了基本图表基类Chart、直角坐标系图表RectChart、3D图表基类Chart3D、
    │  │  mixins.py # 定义多重继承基类ChartMixin、CompositeMixin
    │  │  __init__.py # 重构命名空间,将子包中具体图表类提升至charts包命名空间。
    │  │
    │  ├─basic_charts # 定义基本图表类
    │  │  │  bar.py 
    │  │  │  bmap.py 
    │  │  │  boxplot.py
    │  │  │  calendar.py
    │  │  │  effectscatter.py
    │  │  │  funnel.py
    │  │  │  gauge.py
    │  │  │  geo.py
    │  │  │  graph.py
    │  │  │  heatmap.py
    │  │  │  kline.py
    │  │  │  line.py
    │  │  │  liquid.py
    │  │  │  map.py
    │  │  │  parallel.py
    │  │  │  pictorialbar.py
    │  │  │  pie.py
    │  │  │  polar.py
    │  │  │  radar.py
    │  │  │  sankey.py
    │  │  │  scatter.py
    │  │  │  sunburst.py
    │  │  │  themeriver.py
    │  │  │  tree.py
    │  │  │  treemap.py
    │  │  │  wordcloud.py
    │  │  │  __init__.py
    │  │
    │  ├─composite_charts # 定义复合图表类
    │  │  │  grid.py
    │  │  │  page.py
    │  │  │  tab.py
    │  │  │  timeline.py
    │  │  │  __init__.py
    │  │
    │  ├─three_axis_charts # 定义3D图表类
    │  │  │  bar3D.py
    │  │  │  line3D.py
    │  │  │  map3D.py
    │  │  │  map_globe.py
    │  │  │  scatter3D.py
    │  │  │  surface3D.py
    │  │  │  __init__.py
    

    pyecharts图表类的继承关系

    在这里插入图片描述

    pyecharts/charts/mixins.py模块

    pyecharts/charts/mixins.py模块定义了ChartMixin类和CompositeMixin类。

    ChartMixin类为所有与图表类的基类,为图表提供JavaScript支持。
    CompositeMixin(ChartMixin)类用于为复合图表类提供可迭代对象支持和实例长度支持。

    pyecharts/charts/mixins.py模块源码:

    from ..render import engine
    
    
    class ChartMixin:
        def add_js_funcs(self, *fns):
            for fn in fns:
                self.js_functions.add(fn)
            return self
    
        def load_javascript(self):
            return engine.load_javascript(self)
    
    
    class CompositeMixin(ChartMixin):
        def __iter__(self):
            for chart in self._charts:
                yield chart
    
        def __len__(self):
            return len(self._charts)
    

    pyecharts/charts/base.py模块

    pyecharts/charts/base.py模块的结构如下:

    • Base类:绝大多数图表类的基类。
    • default函数json.dumps函数实参,用于定义特殊对象类型的序列化方式。

    在这里插入图片描述

    Base

    Base类的签名为class Base(init_opts)Base类的属性、方法如下:

    属性:主要通过参数全局配置项init_opts.opts构造。

    • widthecharts实例宽度。通过init_opts参数获取。
    • heightecharts实例宽度。通过init_opts参数获取。
    • rendererecharts实例渲染类型。通过init_opts参数获取。
    • page_title:输出页面的标题。字符串。通过init_opts参数获取,默认值为全局变量CurrentConfig.PAGE_TITLE
    • chart_idecharts实例id。通过init_opts参数或全局变量uuid.uuid4().hex获取。
    • options: echarts配置项。类型为字典,默认值为{}
    • theme :图表主题。通过init_opts参数获取,默认值为全局变量ThemeType.WHITE
    • js_host:JavaScript库的URL。通过init_opts参数或全局变量CurrentConfig.ONLINE_HOST获取。
    • js_functions:自定义JavaScript语句。类型为OrderedSet对象。默认值为OrderedSet()
    • js_dependencies:定义JavaScript依赖库。类型为OrderedSet对象。默认值为OrderedSet("echarts")
    • _is_geo_chart:是否为地理图。布尔值,默认为False
    • json_contents:按照JSON格式处理的options属性(echarts配置项)。为渲染模板提供配置项数据。

    方法:

    • get_options:去除options属性字典中值为None的元素,获取全局配置。
    • dump_options:将经过get_options方法处理过的echarts配置项序列化为JSON格式(JsCode 生成的函数不带引号)。
    • dump_options_with_quotes:功能与dump_options类似,差异仅在于配置项中的JavaScript占位符处理方式(JsCode 生成的函数带引号,在前后端分离传输数据时使用)。
    • _use_theme:根据选用主题,添加主题的依赖库。
    • _prepare_render:根据dump_options方法生成json_contents属性。为渲染模板提供配置项数据。
    • render:调用renderengine模块中的render函数渲染HTML文档。
    • render_embed:调用renderengine模块中的render_embed函数输出HTML字符串。
    • render_notebook:调用renderengine模块中的render_notebook函数将输出嵌入到notebook中。

    对于Base类属性的理解要结合模板和模板宏。在下列宏中可以简单说明图表类属性的应用。

    {%- macro render_chart_content(c) -%}
        <div id="{{ c.chart_id }}" class="chart-container" style="width:{{ c.width }}; height:{{ c.height }};"></div>
        <script>
            var chart_{{ c.chart_id }} = echarts.init(
                document.getElementById('{{ c.chart_id }}'), '{{ c.theme }}', {renderer: '{{ c.renderer }}'});
            {% for js in c.js_functions.items %}
                {{ js }}
            {% endfor %}
            var option_{{ c.chart_id }} = {{ c.json_contents }};
            chart_{{ c.chart_id }}.setOption(option_{{ c.chart_id }});
            {% if c._is_geo_chart %}
                var bmap = chart_{{ c.chart_id }}.getModel().getComponent('bmap').getBMap();
                {% if c.bmap_js_functions %}
                    {% for fn in c.bmap_js_functions.items %}
                        {{ fn }}
                    {% endfor %}
                {% endif %}
            {% endif %}
            {% if c.width.endswith('%') %}
                window.addEventListener('resize', function(){
                    chart_{{ c.chart_id }}.resize();
                })
            {% endif %}
        </script>
    {%- endmacro %}
    

    pyecharts/charts/base.py模块源码

    class Base(ChartMixin):
        """
        `Base` is the root class for all graphical class, it provides
        part of the initialization parameters and common methods
        """
    
        def __init__(self, init_opts: Union[InitOpts, dict] = InitOpts()):
            _opts = init_opts
            if isinstance(init_opts, InitOpts):
                _opts = init_opts.opts
    
            self.width = _opts.get("width", "900px")
            self.height = _opts.get("height", "500px")
            self.renderer = _opts.get("renderer", RenderType.CANVAS)
            self.page_title = _opts.get("page_title", CurrentConfig.PAGE_TITLE)
            self.theme = _opts.get("theme", ThemeType.WHITE)
            self.chart_id = _opts.get("chart_id") or uuid.uuid4().hex
    
            self.options: dict = {}
            self.js_host: str = _opts.get("js_host") or CurrentConfig.ONLINE_HOST
            self.js_functions: utils.OrderedSet = utils.OrderedSet()
            self.js_dependencies: utils.OrderedSet = utils.OrderedSet("echarts")
            self.options.update(backgroundColor=_opts.get("bg_color"))
            self.options.update(_opts.get("animationOpts", AnimationOpts()).opts)
            self._is_geo_chart: bool = False
    
        def get_options(self) -> dict:
            return utils.remove_key_with_none_value(self.options)
    
        def dump_options(self) -> str:
            return utils.replace_placeholder(
                json.dumps(self.get_options(), indent=4, default=default, ignore_nan=True)
            )
    
        def dump_options_with_quotes(self) -> str:
            return utils.replace_placeholder_with_quotes(
                json.dumps(self.get_options(), indent=4, default=default, ignore_nan=True)
            )
    
        def render(
            self,
            path: str = "render.html",
            template_name: str = "simple_chart.html",
            env: Optional[Environment] = None,
            **kwargs,
        ) -> str:
            self._prepare_render()
            return engine.render(self, path, template_name, env, **kwargs)
    
        def render_embed(
            self,
            template_name: str = "simple_chart.html",
            env: Optional[Environment] = None,
            **kwargs,
        ) -> str:
            self._prepare_render()
            return engine.render_embed(self, template_name, env, **kwargs)
    
        def render_notebook(self):
            self.chart_id = uuid.uuid4().hex
            self._prepare_render()
            return engine.render_notebook(
                self, "nb_jupyter_notebook.html", "nb_jupyter_lab.html"
            )
    
        def _use_theme(self):
            if self.theme not in ThemeType.BUILTIN_THEMES:
                self.js_dependencies.add(self.theme)
    
        def _prepare_render(self):
            self.json_contents = self.dump_options()
            self._use_theme()
    
    
    def default(o):
        if isinstance(o, (datetime.date, datetime.datetime)):
            return o.isoformat()
        if isinstance(o, utils.JsCode):
            return (
                o.replace("\\n|\\t", "").replace(r"\\n", "\n").replace(r"\\t", "\t").js_code
            )
        if isinstance(o, BasicOpts):
            if isinstance(o.opts, Sequence):
                return [utils.remove_key_with_none_value(item) for item in o.opts]
            else:
                return utils.remove_key_with_none_value(o.opts)
    
    展开全文
  • 图表上的图表指标在当前图表上显示其它品种的图表
  • BarChart图表

    2018-06-22 09:26:22
    实现了单柱图表,双柱图表的效果,图表X轴上可换行显示,图表上的数值可以显示或隐藏,可自由设置图表的颜色,X,Y轴上的刻度条可以显示或隐藏
  • jQuery动态饼状图表 多色块图表数据区域 jQuery动态饼状图表 多色块图表数据区域
  • 20种qt图表显示主题和qt常见经典图表源码
  • 锐普图表锐普图表_1锐普图表_164.ppt64.ppt
  • VBA图表剖析.VBA图表剖析.VBA图表剖析.VBA图表剖析.
  • js图表框架js图表框架

    2011-04-15 01:41:05
    js图表框架js图表框架js图表框架js图表框架
  • 环形图表,饼状图表,wifi信号图表,10套简约环形图表模板下载。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 431,488
精华内容 172,595
关键字:

图表