气泡图标题和颜色

Har*_*rry 2 python bubble-chart matplotlib

在下面的气泡图中,我如何:

  1. 随机化每个气泡的颜色

  2. 调整标题(可能是上),使其不会与最左上角的图形标签重叠。

这是我的输出:

气泡图

这是我的代码:

import matplotlib.pyplot as plt
N=5
province=['Ontario','Quebec','BritishColumbia','Manitoba','NovaScoti']
size = [908.607,1356.547,922.509,552.329,651.036]
population = [12851821,7903001,4400057,1208268,4160000]
injuries = [625,752,629,1255,630]
plt.scatter(size,population,s=injuries)
for i in range(N):
    plt.annotate(province[i],xy=(size[i],population[i]))
plt.xlabel('Size(*1000km2)')
plt.ylabel('Population(ten million)')
plt.title('The Car Accidents Injuries Rate in 5 Canada Provinces')
plt.show
Run Code Online (Sandbox Code Playgroud)

tmd*_*son 5

  1. 您可以将N随机数数组提供给颜色图以获取N随机颜色,然后color在调用plt.scatter. color可以是与大小和人口列表长度相同的颜色列表,它将分别为每个散点着色。

  2. plt.title采用y将调整标题垂直位置的参数。在您的情况下,尝试将其设置为 1.05。

这是您的脚本,已修改:

import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np

N=5
province=['Ontario','Quebec','BritishColumbia','Manitoba','NovaScoti']
size = [908.607,1356.547,922.509,552.329,651.036]
population = [12851821,7903001,4400057,1208268,4160000]
injuries = [625,752,629,1255,630]

# Choose some random colors
colors=cm.rainbow(np.random.rand(N))

# Use those colors as the color argument
plt.scatter(size,population,s=injuries,color=colors)
for i in range(N):
    plt.annotate(province[i],xy=(size[i],population[i]))
plt.xlabel('Size(*1000km2)')
plt.ylabel('Population(ten million)')

# Move title up with the "y" option
plt.title('The Car Accidents Injuries Rate in 5 Canada Provinces',y=1.05)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明