首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Matplotlib中的条形图中为图例分配多个标签和颜色?

如何在Matplotlib中的条形图中为图例分配多个标签和颜色?
EN

Stack Overflow用户
提问于 2020-10-07 23:28:28
回答 1查看 595关注 0票数 0

我被要求用这些数据制作一个条形图:

代码语言:javascript
复制
customer=['Alice', 'Bob', 'Claire']
cakes=[5,9,7] 
flavor=['chocolate', 'vanilla', 'strawberry']

最终结果应该是这样的。

使用Altair创建图表的代码如下:

代码语言:javascript
复制
import altair

data = altair.Data(customer=['Alice', 'Bob', 'Claire'], cakes=[5,9,7], flavor=['chocolate', 'vanilla', 'strawberry'])
chart = altair.Chart(data)
mark = chart.mark_bar()
enc = mark.encode(x='customer:N',y='cakes',color='flavor:N')
enc.display()

我使用matplotlib生成类似图表的代码如下:

代码语言:javascript
复制
import matplotlib.pyplot as plt

customers = ['Alice', 'Bob', 'Clair']
length = [0,1,2]
cakes = [5, 9, 7]
flavors = ['chocolate', 'vanilla', 'strawberry']
colors = ['brown', 'beige', 'magenta']

for w,x,y,z in zip(length, flavors, colors, cakes):
    plt.bar(w, z, color = y, align = 'center', alpha = 0.5, label = x)

plt.xticks(y_pos, customers)

plt.ylabel('Cakes')
plt.title('Customers')

plt.legend()
plt.show()

我的问题是:,我怎样才能更优雅地将多个标签和颜色分配给一个传奇呢?

也请给我一些建议,我可以如何设计这个代码,使它更优雅和简洁,谢谢你,并为这么长的一个问题!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-07 23:51:00

因为您定制了太多的东西,例如颜色、名称,特别是每个条形的图例标签,所以我看不出有什么更好的解决方案。一个轻微的改进是删除length/y_pos

代码语言:javascript
复制
for w,x,y,z in zip(customers, flavors, colors, cakes):
    plt.bar(w, z, color = y, align = 'center', alpha = 0.5, label = x)

plt.ylabel('Cakes')
plt.title('Customers')

plt.legend()
plt.show()

输出:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64253675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档