Python 3.x 可以把'plt.yticks'放在单杠之间吗?

Python 3.x 可以把'plt.yticks'放在单杠之间吗?,python-3.x,pandas,matplotlib,data-visualization,Python 3.x,Pandas,Matplotlib,Data Visualization,我试图将值放入条之间的plt.yticks。不幸的是,我不知道怎么做。有可能吗?如果有,谁能给点建议吗 import pandas as pd import numpy as np import matplotlib.pyplot as plt age = np.array( ["0 - 4", "5 - 9", "10 - 14", "15 - 19", "20 - 24", "25 - 29", "30 - 34", "35 - 39", "40 - 44", "45 -

我试图将值放入条之间的
plt.yticks
。不幸的是,我不知道怎么做。有可能吗?如果有,谁能给点建议吗

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

age = np.array(
    ["0 - 4", "5 - 9", "10 - 14", "15 - 19", "20 - 24", "25 - 29", "30 - 34", "35 - 39",
     "40 - 44", "45 - 49", "50 - 54", "55 - 59", "60 - 64", "65 - 69", "70 - 74",
     "75 - 79", "80 - 84", "85 - 89", "90 - 94", "95 - 99", "> 100"])
m = np.array(
    [1915887, 2100931, 2494484, 2464805, 2361297, 2529633, 2669927, 2754129, 2753282,
     2552531, 2211649, 1697221, 1311024, 902675, 722246, 482686, 273915, 108639, 35867,
     10965, 1238])
f = np.array(
    [1823981, 1980712, 2369795, 2435784, 2330223, 2562964, 2724990, 2860720, 2918730,
     2713534, 2376384, 1869867, 1454373, 1030677, 885393, 640698, 388748, 172302, 64170,
     19868, 2711])
x = np.arange(age.size)
tick_lab = ['3M', '2M', '1M', '1M', '2M', '3M']
tick_val = [-3000000, -2000000, -1000000, 1000000, 2000000, 3000000]


def plot_pyramid():
    plt.barh(x, -m, alpha=.75, height=.75, align='center' , color="deepskyblue")
    plt.barh(x, f, alpha=.75, height=.75, align='center', color="pink")
    plt.yticks(x, age)
    plt.xticks(tick_val, tick_lab)
    plt.grid(b=False)
    plt.title("Population Pyramid")
    plt.show()


if __name__ == '__main__':
    plot_pyramid()

我刚刚用下面的行替换了两行
plt.barh
行,并在函数中
plt.title
之后添加了for循环,并用
plt.yticks([])替换了
ax.set\u yticks(False)
。我不确定这是否正是你想要的

# Modified before the function because you are shifting the bars left/right
tick_val = np.array([-3000000, -2000000, -1000000, 1000000, 2000000, 3000000])
shift = 300000
tick_val[0:3] -= shift
tick_val[3:] += shift

# Modified inside the function
plt.barh(x, -m, alpha=.75, height=.75, left=-shift, align='center' , color="deepskyblue")
plt.barh(x, f, alpha=.75, height=.75, left = shift, align='center', color="pink")

for i, j in enumerate(age):
    if i==0 or i==1:
        plt.text(-150000, x[i]-0.2, j, fontsize=10)
    else:    
        plt.text(-230000, x[i]-0.2, j, fontsize=10)
输出


您的意思是将值垂直放置在绘图的中心吗?是的,它是!这就是我想做的。好的,检查我下面的答案。这是你想要的吗?是否也可以添加一个空格?空格之间是什么?解释你的意思