精华内容
下载资源
问答
  • pyecharts调整图例与各板块的位置间距 pyecharts Grid pyecharts修改间距

    pyecharts调整图例与各板块的位置间距

    引入Grid

    grid=Grid()
    	# 可以分别调整上下左右的位置,可以是百分比,也可以是具体像素,如pos_top="50px"
        grid.add(c,grid_opts=opts.GridOpts(pos_top="50%",pos_bottom="50%",pos_left="50%",pos_right="50%"))
    

    调整前的默认距离

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190909135817193.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2plcnVycnk=,size_16,color_FFFFFF,t_70
    代码如下

    from example.commons import Faker
    from pyecharts import options as opts
    from pyecharts.charts import Bar,Grid
    
    
    def bar_base() -> Bar:
        c = (
            Bar()
            .add_xaxis(Faker.choose())
            .add_yaxis("商家A", Faker.values())
            .add_yaxis("商家B", Faker.values())
            .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))
        )
    
        return c
    
    if __name__ == '__main__':
        bar_base().render()
    

    通过引入Grid调整后

    在这里插入图片描述
    代码如下
    在这里插入图片描述

    from example.commons import Faker
    from pyecharts import options as opts
    from pyecharts.charts import Bar,Grid
    
    def grid_base() -> Grid:
        c = (
            Bar()
            .add_xaxis(Faker.choose())
            .add_yaxis("商家A", Faker.values())
            .add_yaxis("商家B", Faker.values())
            .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))
        )
    
        grid=Grid()
        # 仅使用pos_top修改相对顶部的位置
        grid.add(c,grid_opts=opts.GridOpts(pos_top="50%"))
    
        return grid
    
    
    if __name__ == '__main__':
        grid_base().render()
    
    展开全文
  • 引入Grid grid=Grid() # 可以分别调整上下左右的位置,可以是百分比,也可以是具体像素,如pos_top=50px ...from pyecharts import options as opts from pyecharts.charts import Bar,Grid def b
  • pyecharts 图例颜色设置 目前使用的pyecharts版本1.7.1,图例暂时不支持颜色指定 图例的颜色是根据你添加图例的顺序,然后再根据全局变量colors 里面的颜色的顺序一一对应的: self.colors = ( "#c23531 #2f4554 #...

    pyecharts 图例颜色设置

    目前使用的pyecharts版本1.7.1,图例暂时不支持颜色指定
    图例的颜色是根据你添加图例的顺序,然后再根据全局变量colors 里面的颜色的顺序一一对应的:

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

    当然,如果你添加数据的时候指定了颜色,colors 会自动在顶部帮你添加对应的颜色值 ,也就是说你最后添加的是在颜色值得最顶端的

    .add_yaxis("商家A", Faker.values(), linestyle_opts=opts.LineStyleOpts(color="red"),)
    .add_yaxis("商家B", Faker.values(), color="blue")
    .add_yaxis("商家C", Faker.values(), color="green")
    

    分别设置线的颜色和系列 label 颜色的颜色
    但是最后显示的时候,是不是就感觉乱套了呢?
    在这里插入图片描述
    看一下此时colors里面的情况:
    在这里插入图片描述
    是不是明白什么了呢?
    添加系列线的颜色是会添加进去的,而设置linestyle_opts则不会添加, 而且添加的顺序是反过来的,最后添加的颜色是在最前面的呢!

        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)
    

    既然图例颜色的安排是按照colors的顺序,这下就可以设置啦:
    是的修改源码还是自己代码操作一下呢?
    如果你不嫌弃后期更新麻烦的话修改源码是可以的,
    如果自己要设置颜色对应,修改一下颜色值顺序即可:

    d = {"商家A":"red", "商家B":"blue", "商家C":"#30E315", "商家D":"#A0E315"}
    
    for key, color in d.items():
        c.add_yaxis(key, Faker.values(), color=color)
    
    num = 0
    for color in d.values():
        c.colors[num] = color
        num += 1
    

    在这里插入图片描述

    展开全文
  • 主要介绍了基于Python pyecharts实现多种图例代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • [pyecharts1.7] 图例设置

    千次阅读 2020-06-29 10:08:42
    文章目录python3样例代码type_ :图例的类型selected_mode :图例选择的模式is_show :是否显示图例pos_left :图例组件离容器左侧的距离pos_right :图例组件离容器右侧的距离pos_top :图例组件离容器上侧的距离p

    本文档以及pyecharts使用手册(超链接)中的其他文档)将会持续更新。 有些内容标记为待更新的,有时间我会补充上。个人精力有限,优先发布在公众号上,有兴趣的可以关注一下哈:微信公众号「燃烧吧数据」(id:data-fired)



    图例组件包括图例标记和图例文字。可以通过点击图例控制哪些系列不显示。

    图例的设置在opts.LegendOpts()中

    python3样例代码

    from pyecharts import options as opts
    from pyecharts.charts import Pie
    
    data = [
        ['衬衫', 72],
        ['毛衣', 136],
        ['领带', 72],
        ['裤子', 105],
        ['风衣', 24],
        ['高跟鞋', 75],
        ['袜子', 92]
    ]
    
    instance1 = (
        Pie()
            .add(series_name='', data_pair=data)
            .set_global_opts(
            title_opts=opts.TitleOpts(title="图例设置基本示例"),
            legend_opts=opts.LegendOpts(
                type_='plain',  # Optional[str]
                selected_mode='multiple',  # Union[str, bool, None]
                is_show=True,  # bool
                pos_left='right',  # Union[str, Numeric, None]
                pos_right='',  # Union[str, Numeric, None]
                pos_top='50%',  # Union[str, Numeric, None]
                pos_bottom='',  # Union[str, Numeric, None]
                orient='vertical',  # Optional[str]
                align='left',  # Optional[str]
                padding=[5, 10],  # int
                item_gap=15,  # int
                item_width=20,  # int
                item_height=20,  # int
                inactive_color='green',  # Optional[str]
                textstyle_opts=opts.TextStyleOpts(
                    color='red',  # Optional[str]
                    font_style=None,  # Optional[str]
                    font_weight=None,  # Optional[str]
                    font_family=None,  # Optional[str]
                    font_size=None,  # Optional[Numeric]
                    align=None,  # Optional[str]
                    vertical_align=None,  # Optional[str]
                    line_height=None,  # Optional[str]
                    background_color='yellow',  # Optional[str]
                    border_color=None,  # Optional[str]
                    border_width=20,  # Optional[Numeric]
                    border_radius=None,  # Union[Numeric, Sequence, None]
                    padding=None,  # Union[Numeric, Sequence, None]
                    shadow_color=None,  # Optional[str]
                    shadow_blur=None,  # Optional[Numeric]
                    width='',  # Optional[str]
                    height='',  # Optional[str]
                    rich=None,  # Optional[dict]
                ),  # Union[TextStyleOpts, dict, None]
                legend_icon='diamond'
            )
        )
    )
    

    type_ :图例的类型

    • 'plain':普通图例。缺省就是普通图例。
    • 'scroll':可滚动翻页的图例。当图例数量较多时可以使用。

    参见 滚动图例(垂直)滚动图例(水平)

    selected_mode :图例选择的模式

    控制是否可以通过点击图例改变系列的显示状态。默认开启图例选择,可以设成 false 关闭。

    除此之外也可以设成 'single' 或者 'multiple' 使用单选或者多选模式。

    is_show :是否显示图例

    pos_left :图例组件离容器左侧的距离

    left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,也可以是 'left', 'center', 'right'

    如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。

    pos_right :图例组件离容器右侧的距离

    right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。

    默认自适应。

    pos_top :图例组件离容器上侧的距离

    top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,也可以是 'top', 'middle', 'bottom'

    如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。

    pos_bottom :图例组件离容器下侧的距离

    bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。

    默认自适应。

    orient :图例列表的布局朝向

    • 'horizontal':水平(横向)图例
    • 'vertical':垂直(竖向)图例

    align :图例标记相对于图例文字的位置

    可选:

    • 'auto'
    • 'left':图例标记在图例文字的左侧
    • 'right':图例标记在图例文字的右侧

    默认自动,根据组件的位置和 orient 决定。

    例:当组件的 left 值为 'right' (pos_left = ‘right’)以及纵向布局(orient=‘vertical’)的时候为右对齐,即为 'right'

    padding :图例内边距

    单位px,默认各方向内边距为5,接受数组分别设定上右下左边距。

    使用示例:

    // 设置内边距为 5
    padding: 5
    // 设置上下的内边距为 5,左右的内边距为 10
    padding: [5, 10]
    // 分别设置四个方向的内边距
    padding: [
        5,  // 上
        10, // 右
        5,  // 下
        10, // 左
    ]
    

    item_gap :图例每项之间的间隔

    横向布局时为水平间隔,纵向布局时为纵向间隔。

    item_width :图例标记的宽度

    默认自适应

    item_height :图例标记的宽度

    默认自适应

    inactive_color :图例关闭时的颜色

    textstyle_opts :图例的文本样式。

    color:文字颜色。

    font_style:文字字体的风格.可选:‘normal’,‘italic’,‘oblique’

    font_weight:主标题文字字体的粗细,可选:‘normal’,‘bold’,‘bolder’,‘lighter’

    font_family:文字的字体系列。还可以是 ‘serif’ , ‘monospace’, ‘Arial’, ‘Courier New’, ‘Microsoft YaHei’, …

    font_size:文字的字体大小

    align:文字水平对齐方式,默认自动

    vertical_align:文字垂直对齐方式,默认自动

    line_height:行高

    background_color:文字块背景色。可以是直接的颜色值,例如:’#123234’, ‘red’, ‘rgba(0,23,11,0.3)’

    border_color:文字块边框颜色

    border_width:文字块边框宽度

    border_radius:文字块的圆角

    padding:文字块的内边距。例:padding: [3, 4, 5, 6]:表示 [上, 右, 下, 左] 的边距,padding: 4:表示 padding: [4, 4, 4, 4],padding: [3, 4]:表示 padding: [3, 4, 3, 4]

    shadow_color:文字块的背景阴影颜色

    shadow_blur:文字块的背景阴影长度

    width:文字块的宽度

    height:文字块的高度

    rich:在 rich 里面,可以自定义富文本样式。利用富文本样式,可以在标签中做出非常丰富的效果。具体配置可以参考一下 https://www.echartsjs.com/tutorial.html#%E5%AF%8C%E6%96%87%E6%9C%AC%E6%A0%87%E7%AD%BE

    legend_icon :图例项的 icon

    ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'

    可以通过 'image://url' 设置为图片,其中 URL 为图片的链接,或者 dataURI

    URL 为图片链接例如:

    'image://http://xxx.xxx.xxx/a/b.png'
    

    URL 为 dataURI 例如:

    'image://data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7'
    

    可以通过 'path://' 将图标设置为任意的矢量路径。这种方式相比于使用图片的方式,不用担心因为缩放而产生锯齿或模糊,而且可以设置为任意颜色。路径图形会自适应调整为合适的大小。路径的格式参见 SVG PathData。可以从 Adobe Illustrator 等工具编辑导出。

    例如:

    'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z'
    
    展开全文
  • pyecharts1.0可视化图例Geo实现

    千次阅读 2020-04-14 16:58:43
    很多人都知道pyecharts可以生成流哔图表,那么怎么生成呢?我自己学的时候发现0.5.x版本的网上有很多,虽说都是CV,但还是也比较好理解的,这个1.0.x的可能还不是那么多人用,可是新的功能肯定有改善啊,所以还是用...

    1. 环境——确认环境
    python:3.8.1
    pycharm:2019.3 64位
    pyecharts:1.7.1

    !注意 !pyecharts0.5.x和pyecharts1.0.x的环境,V1的版本需要安装的python是3.6.x及以上的。不管你安装了还是没有安装,或者你想换个版本,使用以下命令总是没错的,亲测(-i后面是镜像,也可以百度搜索选择别的镜像,使用本土默认的要么是很慢,要么是报错,简直无力吐槽):
    安装pyecharts的命令:pip install pyecharts==版本号 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

    2. 可视化准备——获取数据
    在可视化之前,首先你得有数据,你的数据从哪里来我就不管了,我这里用的数据是之前已经爬取好的数据,现在存放在了数据库,所以下面的可视化数据都是从数据库中拿到的。(关于爬虫的问题可以参考一下我的上一篇博客:scrapy存到mysql测试用例,但是比较比较基本、比较常规,仅供参考,后续应该会更新改进)
    3. pyecharts可视化实现

    在正式编写代码之前,你可以先把这些先敲上:
    import json
    import pymysql
    from bs4 import BeautifulSoup
    from pyecharts.charts import *
    from pyecharts import options as opts
    from pyecharts.commons.utils import JsCode
    from pyecharts.components import Table
    from pyecharts.globals import ThemeType, ChartType
    from pyecharts.options import ComponentTitleOpts
    总有一款适合你

    还有一个就是记得安装地图:
    全球国家地图: echarts-countries-pypkg
    中国省级地图:echarts-china-provinces-pypkg
    中国市级地图: echarts-china-cities-pypkg
    使用命令:pip install 地图安装包文件名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

    • [3.1 ] 连接数据库,拿出数据
    conn = pymysql.Connect(
        host='主机名',#一般是localhost
        port=端口号,
        user='用户名',
        passwd='密码',
        db='数据库名',
        charset='编码方式'#utf-8的编码注意是写成utf8,中间没有-
    )
    cursor = conn.cursor()  
    sql_select = 'select * from 数据库表名'#忘记数据库操作语句或缺少这方面知识的可以去科普一下,不过这里简单,就是查询而已
    cursor.execute(sql_select)
    visual_data = cursor.fetchall()  
    

    刚入门的小白可能不太理解,更多参考这里:python之cursor() — 数据库连接操作以及这里:介绍Python 数据库的Connection、Cursor两大对象
    其实前面的这些看不看都无所谓,因为我不会把具体数据代入,毕竟我要记录的是渔,不是教你吃鱼,哈哈哈哈

    • [ 3.2] Geo可视化
    (Geo()
        .add_schema(maptype="china")#这个是显示地图的类型world/china/...
        .add("我是图例名称", data_pair=list(zip([地点列表], [对应数据列表])),
             type_=ChartType.EFFECT_SCATTER)
        .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
        title_opts=opts.TitleOpts(title="我是大标题",
                                  title_textstyle_opts=opts.TextStyleOpts(color='#大标题颜色')),
        legend_opts=opts.LegendOpts(textstyle_opts=opts.TextStyleOpts(color='#图例名颜色'))
    )).render('./test.html')
    

    上面的是非常基本的用法,效果的话,放一张官方图吧:在这里插入图片描述
    要保证的一点是,你的地点列表中的点,在读图上都能够找到,那么问题来了,我的地点卡在山旮旯,地图上找不到怎么办?这里分两种情况,一种是你的地点比较少,那么你就可以自己人工插入这些地点的坐标,跟在Geo()屁股后面就行(升级后的版本可以链式调用):.add_coordinate("山旮旯", 110, 30),这是点比较少的情况下,还有一种是我要显示的是成百上千个点的情况,这个时候就需要成批导入了,导入之前你要先把数据转成json文件,转成json文件之前,你要把地点名称和坐标位置一一对应起来,所以你就知道要用字典把数据一一对应起来了:

    for item in visual_data:  # visual_data是全部的数据,item是全部数据中的一条,假设一条item是这样的:('山旮旯',110,30)
        address_coordinate[(item[0])] = [float(item[1]), float(item[2])]  # 地名和坐标构成字典
    with open('address_coords.json', 'w+') as file:  # w+是可读可写的意思
        json.dump(address_coordinate, file)
    

    json.dump()是把字典转成json文件,不懂的小伙伴还可以点击这里:json.dumps()和json.loads()这一部分呢是放在可视化可视化接口之前的,要说具体一点就是在这个(Geo().....前面完成,文件转好之后就可以添加了,替换刚刚的.add_coordinate("山旮旯", 110, 30).add_coordinate_json('address_coordinate.json')

    其他实例就不一一记录了,因为我觉得其他都还算简单,看文档就行,这个我记录的原因是因为我当时在处理这个地点和坐标的时候卡了很久,翻来翻去又去看文档才整出来的,因此记录一下,让有同样困扰的小伙伴可以参考参考,有什么问题可以一起交流交流

    这些都是比较基础的操作,还有一些其他细节上可以去翻看一下官方文档:pyecharts是中文版的,看官方文档真的很有用,当你看不懂人家写的是啥的时候,你就可以去看一下,然后你可能就会惊讶的发现,与其去看别人还不如去看官方介绍,这个介绍是真的齐全,一个介绍每一个接口都是怎么用的,介绍完各个部件以后,后面会有一个实例链接,一边看别人写的,一边看官方吸收的还是很快的。可能刚开始的时候你还不知道怎么看官方文档,但是也不要因为看不懂就不看了,别人写的、官方介绍的、官方实例一起看,这样还看不懂的时候你可以复制下代码,一点点打印测试,慢慢的你就能看懂了!

    展开全文
  • 使用例子 更多例子,请关注公众号 拇指笔记 建议看一看源码。...左/右,或者百分数,百分数的含义图例的坐标位置在整个宽度的百分之多少(如果宽外1000,设置为80%就意味着图例在800的位置。 .set_glo...
  • pyecharts中默认图例图标通常为方形或者圆形,我们也可以通过如下语句设置为我们自己想要的图标: bar.set_global_opts(legend_opts=opts.LegendOpts(legend_icon='path://M24.734 17.003c-0.040-4.053', ...
  • pyecharts中,默认图例是可以任意进行选择的,可以选中一个,也可以选中多个; 但有的时候,我们可能不希望如此:譬如两个系列的数据并没太大的对比性,或者不同系列的数据之间量级差别太大,同时选中展示的话影响...
  • Line,折线图 Grid 图例摆放 的使用 from pyecharts import Pie,Bar,Gauge,EffectScatter,WordCloud,Map,Line,Grid import random attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子...
  • from pyecharts import options as opts from pyecharts.charts import Bar from pyecharts.faker import Faker from pyecharts.globals import ThemeType from pyecharts.charts import Bar bar = ( Bar({"t...
  • pyecharts-gallery 英文文档在这 - English Introduction is Here 项目简介 项目基于 pyecharts 1.8.1 版本进行展示 ...以下图例多数会基于 Echarts 的官方实例,不过也有部分会基于 Echarts 的社区 Gallery 实现
  • 使用pyecharts快速上手(一):柱形图,折线图里的折线图来进行说明。 from pyecharts.charts import Bar from pyecharts.charts import Line from pyecharts import options as opts x_date = [ '2020-02-09', '...

空空如也

空空如也

1 2 3 4 5
收藏数 98
精华内容 39
关键字:

pyecharts图例