matlib制作人民日报图表,python2.7

#coding=utf-8
#导入相应的库
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
import matplotlib.image as image
import numpy as np
import pandas as pd

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

datafile = cbook.get_sample_data('logo.png', asfileobj=False)
print('loading %s' % datafile)
im = image.imread(datafile)
im[:, :, -1] = 0.5  # set the alpha channel

#设置字体,可以在图上显示中文
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
#读取数据
data=pd.read_excel('haiwaiyiqing.xlsx',index_col=0)
#数据计算,这里只取前20个国家
radius = data['count'][:20]
n=radius.count()
theta = np.arange(0, 2*np.pi, 2*np.pi/n)+2*np.pi/(2*n)    #360度分成20分,外加偏移
#在画图时用到的 plt.cm.spring_r(r)   r的范围要求时[0,1]
radius_maxmin=(radius-radius.min())/(radius.max()-radius.min())  #x-min/max-min   归一化
#画图
fig = plt.figure(figsize=(20,5),dpi=256)

xtick = data['count'].values

ax = fig.add_subplot('111',projection='polar')    #启用极坐标
bar = ax.bar(theta, xtick,width=2*np.pi/n)
ax.set_theta_zero_location('N')  #分别为N, NW, W, SW, S, SE, E, NE
ax.set_rgrids([])    #用于设置极径网格线显示


ax.set_xlabel(xtick)
ax.set_xticks(xtick)
ax.set_xticklabels(xtick)
#ax.xaxis.set_ticks_position('bottom')


# ax.set_rticks()    #用于设置极径网格线的显示范围
# ax.set_theta_direction(-1)    #设置极坐标的正方向
ax.set_thetagrids(xtick)  #用于设置极坐标角度网格线显示
# ax.set_theta_offset(np.pi/2)       #用于设置角度偏离
ax.set_title('globle 2019-NCP',fontdict={'fontsize':8})   #设置标题
#设置扇形各片的颜色
for r, bar in zip(radius_maxmin, bar):
    bar.set_facecolor(plt.cm.spring_r(r))
    bar.set_alpha(0.8)

#设置边框显示
for key, spine in ax.spines.items():
    if key=='polar':
        spine.set_visible(False)
fig.figimage(im, 10, 10, zorder=3)

plt.show()
#保存图片
fig.savefig('COVID.png')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徒步@天涯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值