任何人都可以帮我把城市名称添加到每个水平条的顶部吗?我已经做了其他一切。只需要弄清楚这一点。
import pandas as pd
import matplotlib.pyplot as plt
df1 = pd.read_csv("city_populations.csv")
#selecting particular columns
df = df1[['name','group','year','value']]
year = df1['year']
df = df.sort_values(by=['value'],ascending=False)
#selceting rows with year 2020
curr_year = 2020
#create a variable with true if year == curr_year
curr_population = df['year'] == curr_year
curr_population = df[curr_population]
print(curr_population)
#drawing the graph
fig,ax = plt.subplots(figsize = (10,8))
#to flip barh
values = curr_population[::-1]['group']
labels = []
clrs = []
for x in values:
if x == "India":
clrs.append("#adb0ff")
elif x == "Europe":
clrs.append("#ffb3ff")
elif x == "Asia":
clrs.append('#90d595')
elif x == "Latin America":
clrs.append("#e48381")
elif x == "Middle East":
clrs.append("#aafbff")
elif x == "North America":
clrs.append("#f7bb5f")
else:
clrs.append("#eafb50")
bar_plot = ax.barh(curr_population[::-1]['name'],curr_population[::-1]['value'],color = clrs)
plt.show()
这是我为了得到条形图而写的代码。我需要指导每个条顶部的标签。
您必须将标签选项添加到< code>barh方法中
< code >在此输入代码 bar _ plot = ax . barh(curr _ population[::-1][' name '],curr_population[::-1]['value'],color = clrs,label="test ")
如果你想更自由地定位标签,你可以使用这样的东西(取自 https://matplotlib.org/3.2.1/gallery/lines_bars_and_markers/barchart.html#sphx-glr-gallery-lines-bars-and-markers-barchart-py):
def autolabel(rects):
"""Attach a text label above each bar in *rects*, displaying its height."""
for rect in rects:
height = rect.get_height()
ax.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom')
autolabel(ax)
问题内容: 我正在尝试使用创建水平堆叠的条形图,但是我看不到如何使条形实际堆叠,而不是全部从y轴开始。 这是我的测试代码。 看到tcaswell的评论后,编辑使用kwarg。 这似乎是正确的方法,但是如果没有特定条形的数据,则尝试失败,因为它正尝试添加到随后返回的值。 问题答案: 由于您使用的是熊猫,因此值得一提的是,您可以在本地进行堆积条形图: 请参阅 文档的可视化部分。
最近在glassdoor-like网站上遇到了一个面试问题,我找不到一个优化的解决方案来解决这个问题: 这和积水问题完全不同。请通读这些例子。 给定一个输入数组,每个元素表示塔的高度,将浇水量,索引号表示浇水位置。每个塔的宽度为1。浇水后打印图表。 备注: > 浇注位置永远不会处于峰值位置。无需考虑分水的情况。 (如果您给出了这种情况的解决方案,您可以假设如果在峰值位置倒入N水,N/2水向左,N/
我需要注释水平条形图。我能够使用matplotlib网站上显示的示例来注释垂直条形图,但是对于 horizonatl 的类似想法似乎不起作用。 以下是垂直方向的小型工作示例: 以下是我想要使用的代码,但不适用于水平图形 感谢任何帮助,提前感谢!
问题内容: 我陷入一种感觉应该相对容易的事情上。我在下面提供的代码是基于我正在从事的一个较大项目的示例。我没有理由发布所有详细信息,因此请原样接受我带来的数据结构。 基本上,我正在创建一个条形图,我可以弄清楚如何在条形图上(在条形图的中心或上方)添加值标签。一直在网上查看示例,但在我自己的代码上实现未成功。我相信解决方案是使用“文本”或“注释”,但是我:a)不知道要使用哪个(通常来说,还没有弄清楚
我想制作我的数据框的性别列的条形图(有许多行),我想在条形图顶部显示0和1的计数。我的数据框是这样的。 此外,我想将0更改为女性,1更改为男性,如下图所示。我在这个网站上看到了类似的问题,但我无法理解其中的逻辑。有人能帮我吗? 我用来制作此图的代码:
我有以下数据框。 具有这些值 我正在尝试使用以下方法使用国家/地区及其频率进行绘制: 我需要的是在每个小节上面显示国家频率,并在小节之间保持一个非常小的空间。