我有以下代码作为示例:

x=[1,2,3,4]
y=[2,2,4,3]
colors = ["blue","blue","orange","blue"]
textures = ["","","x",""]
myfig = go.Figure()
myfig.add_trace(go.Bar(x=x
                     ,y=y
                     ,showlegend=True
                     ,marker_color=colors
                     ,marker_pattern_shape=textures
                     ,name="my_trace"))
myfig.show()

这将产生以下数字:

Plot produced by the actual code

我想让图例显示两个名字:

  • 一个代表蓝条(比方说,命名为"Any")
  • 一个是带有纹理的橙色条(假设命名为"max",也显示纹理)

我不能给情节增加更多的痕迹,关键是要用同样独特的痕迹来做.

推荐答案

我认为plotly express个在这里会很好用.除了color之外,您还需要使用color_discrete_map,因为Ploly不会将您的 colored颜色 列表解释为 colored颜色 ,而是将其解释为唯一字符串(并 for each 唯一字符串分配其自己的默认 colored颜色 ,而不考虑字符串本身).因此,我们要做的是创建一个名称列表(用于图例)以传递给 colored颜色 参数,然后使用color_discrete_map将每个名称映射到实际 colored颜色 .

类似地,除了pattern_shape之外,您还需要为pattern_shape_sequence提供一个参数,因为Pattery_Shape_Sequence将用来指定实际纹理.

import numpy as np
import plotly.express as px
import plotly.graph_objects as go

x=[1,2,3,4]
y=[2,2,4,3]
names = ["any","any","max","any"]
colors = ["blue","blue","orange","blue"]
color_discrete_map = {n:c for n,c in zip(names, colors)}
textures = ["","","x",""]
textures_sequence = np.unique(textures).tolist() # ['', 'x']

myfig = px.bar(x=x, y=y, color=names, color_discrete_map=color_discrete_map, pattern_shape=textures, pattern_shape_sequence=textures_sequence)
myfig.show()

enter image description here

Python相关问答推荐

过滤绕轴旋转的螺旋桨

按照行主要蛇扫描顺序对点列表进行排序

指示组内的rejected_time是否在creation_timestamp后5分钟内

如何使用上下文管理器创建类的实例?

在Pandas框架中截短至固定数量的列

分组数据并删除重复数据

Python多处理:当我在一个巨大的pandas数据框架上启动许多进程时,程序就会陷入困境

根据条件将新值添加到下面的行或下面新创建的行中

即使在可见的情况下也不相互作用

比较2 PD.数组的令人惊讶的结果

标题:如何在Python中使用嵌套饼图可视化分层数据?

在Python中动态计算范围

我想一列Panadas的Rashrame,这是一个URL,我保存为CSV,可以直接点击

cv2.matchTemplate函数匹配失败

如何排除prefecture_related中查询集为空的实例?

不允许 Select 北极滚动?

如何求相邻对序列中元素 Select 的最小代价

Pandas 数据帧中的枚举,不能在枚举列上执行GROUP BY吗?

Python日志(log)库如何有效地获取lineno和funcName?

Polars时间戳同步延迟计算