用户登录
用户注册

分享至

在 python 2.7 中更改 matplotlib.bar 顺序

  • 作者: 鵞奀昆勥
  • 来源: 51数据库
  • 2022-11-04

问题描述

在这个例子中:

import matplotlib.pyplot as plt颜色= ['白色','橙色','绿色','紫色']费率 = ['5','5','4','3']plt.bar(颜色,费率)

图中的条形按字母顺序排列.

如何使它们以与代码中相同的顺序显示(从最高到最低的比率)?

解决方案

Matplotlib 2.1 为

In this example:

import matplotlib.pyplot as plt

colors = ['white', 'orange', 'green', 'purple']
rates = ['5','5','4','3']

plt.bar(colors, rates)

the bars in the plot are ordered by the alphabetic order.

How do I make them to show in the same order as they are in the code (from highest to lowest rate)?

解决方案

Matplotlib 2.1 provides the new option to use strings as input to its plotting functions - called "categoricals". This is a new feature and not yet completely working. One caveat is that strings are automatically sorted (alphabetically). This restriction will be removed in the next release.

Until then you would produce your plot just as in times when matplotlib did not even allow for strings to put in. Convert data to numbers, and plot against the list index. Afterwards set the ticklabels to their names.

import matplotlib.pyplot as plt

colors = ['white', 'orange', 'green', 'purple']
rates = ['5','5','4','3']

plt.bar(range(len(colors)), list(map(float,rates)) )
plt.xticks(range(len(colors)), colors)

plt.show()

软件
前端设计
程序设计
Java相关