Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在条形图的末尾显示国旗(Python+;Matplolib)?_Python_Python 3.x_Pandas_Matplotlib - Fatal编程技术网

如何在条形图的末尾显示国旗(Python+;Matplolib)?

如何在条形图的末尾显示国旗(Python+;Matplolib)?,python,python-3.x,pandas,matplotlib,Python,Python 3.x,Pandas,Matplotlib,我试图在条形图的末尾插入国旗 如何在条形图的末尾显示国旗 我尝试模仿的最佳示例如下: 你试过什么了吗?至少看看?我想你是来回答我想问的一个问题的:如何将国旗显示为标签?但是我正在寻找如何将图像插入到条中(不是在轴上)。我没有回答任何问题。我建议你在现有解决方案的基础上自己尝试一下。将图像添加为“ticklabels”和将它们添加到条提示上的区别只是使用不同的坐标。如果您在尝试实现某项功能时遇到问题,请随时询问。 import pandas as pd import matplotlib.pypl

我试图在条形图的末尾插入国旗

如何在条形图的末尾显示国旗

我尝试模仿的最佳示例如下:


你试过什么了吗?至少看看?我想你是来回答我想问的一个问题的:如何将国旗显示为标签?但是我正在寻找如何将图像插入到条中(不是在轴上)。我没有回答任何问题。我建议你在现有解决方案的基础上自己尝试一下。将图像添加为“ticklabels”和将它们添加到条提示上的区别只是使用不同的坐标。如果您在尝试实现某项功能时遇到问题,请随时询问。
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
from IPython.display import HTML

url = 'https://gist.githubusercontent.com/bagraprac75/e9f880f31367a23e2ce1cf4ff830813f/raw/7ce2f0442a3b93eba989ae3556a501b52187bc5c/Test-Table-people-with-flags2.csv'
df = pd.read_csv(url, usecols=['name', 'ForM', 'year', 'value', 'countryflags'])

colors = dict(zip(
    ["Female", "Male"],
    ["#ffc0cb", "#007aff"]
))
group_lk = df.set_index('name')['ForM'].to_dict()

fig, ax = plt.subplots(figsize=(15, 8))

def draw_barchart(current_year):
    dff = df[df['year'].eq(current_year)].sort_values(by='value', ascending=True).tail(10)
    ax.clear()
    ax.barh(dff['name'], dff['value'], color=[colors[group_lk[x]] for x in dff['name']])
    dx = dff['value'].max() / 200
    for i, (value, name) in enumerate(zip(dff['value'], dff['name'])):
        ax.text(value-dx, i,     name,           size=10, weight=600, ha='right', va='center')
        ax.text(value+dx, i,     f'{value:,.0f}',  size=12, ha='left',  va='center')
    ax.xaxis.set_major_formatter(ticker.StrMethodFormatter('{x:,.0f}'))
    ax.xaxis.set_ticks_position('top')
    ax.tick_params(axis='x', colors='#999999', labelsize=10)
    ax.set_yticks([])
    ax.margins(0, 0.01)
    ax.grid(which='major', axis='x', linestyle='-',color='#c5c5c5')
    ax.set_axisbelow(True)
    plt.box(False)

draw_barchart(2018)