楼主: zdlspace
1624 1

[问答] 如何用Python画出径向直方图? [推广有奖]

  • 1关注
  • 80粉丝

学科带头人

91%

还不是VIP/贵宾

-

威望
2
论坛币
5634 个
通用积分
8081.4884
学术水平
517 点
热心指数
533 点
信用等级
506 点
经验
52330 点
帖子
1681
精华
0
在线时间
2679 小时
注册时间
2013-7-21
最后登录
2024-4-10

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如何用Python画出如下的图:
WechatIMG139.jpeg
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 如何用 直方图

已有 1 人评分学术水平 热心指数 信用等级 收起 理由
chentibiao + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

Raymond
Stata 17.0, MP(4)
沙发
zdlspace 学生认证  发表于 2021-1-14 14:56:42 |只看作者 |坛友微信交流群
自己摸索了一下,怎么样达到跟帖子中一样的效果呢?去掉外面的圆圈,将省份放在直方图下方,数值放在直方图上方? 1610606786815.jpg

代码如下:
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Sun Sep 29 17:56:15 2019
  4. @author: Jie Zhang,微信公众号【EasyShu】,本代码源自《Python数据可视化之美》
  5. """
  6. import numpy as np
  7. from matplotlib import cm,colors
  8. from matplotlib import pyplot as plt
  9. from matplotlib.pyplot import figure, show, rc
  10. import pandas as pd

  11. plt.rcParams["patch.force_edgecolor"] = True

  12. mydata=pd.DataFrame(dict(day=["北京","上海","广东","安徽","河南","江苏","重庆","云南","四川","江西","湖北",
  13.                               "河北","西藏","浙江","黑龙江","吉林","辽宁","天津","新疆","山东","海南","广西",
  14.                               "贵州","宁夏","陕西","青海","福建","内蒙古","甘肃"],      
  15.                       月最低工资标准=[10, 60, 50, 20,10,90,30,10,23,34,50,10, 60, 50, 20,10,90,30,10,23,34,50,40,50,60,70,80,90,100],
  16.                       小时最低工资标准=[20,50, 10, 10,30,60,50,60, 50, 20,10,30, 50, 20, 40,10,40,50,40,90,80,120,34,50,10, 60, 50, 20,10]))


  17. n_row = mydata.shape[0]
  18. n_col= mydata.shape[1]
  19. angle = np.arange(0,2*np.pi,2*np.pi/n_row)
  20.     #绘制的数据

  21. cmap=cm.get_cmap('Reds',n_col)
  22. color=[colors.rgb2hex(cmap(i)[:3]) for i in range(cmap.N) ]

  23. radius1 = np.array(mydata.月最低工资标准)
  24. radius2 = np.array(mydata.小时最低工资标准)


  25. fig = figure(figsize=(7,7),dpi =90)   
  26. ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], polar=True)

  27. #方法用于设置角度偏离,参数值为弧度值数值
  28. ax.set_theta_offset(np.pi/2)
  29. #当set_theta_direction的参数值为1,'counterclockwise'或者是'anticlockwise'的时候,正方向为逆时针;
  30. #当set_theta_direction的参数值为-1或者是'clockwise'的时候,正方向为顺时针;
  31. ax.set_theta_direction(-1)
  32. #方法用于设置极径标签显示位置,参数为标签所要显示在的角度
  33. ax.set_rlabel_position(360)


  34. barwidth1=0.07  
  35. barwidth2=0.07
  36. plt.bar(angle,radius1,width=barwidth2, align="center",color=color[0],edgecolor="k",alpha=1,label="月最低工资标准")
  37. plt.bar(angle+barwidth1,radius2,width=barwidth2,align="center", color=color[1],edgecolor="k",alpha=1,label="小时最低工资标准")
  38. plt.legend(loc="center",bbox_to_anchor=(1.3, 0, 0, 1))

  39. plt.ylim(-150,135)
  40. plt.xticks(angle+2*np.pi/n_row/4,labels=mydata.day,size=12)
  41. plt.yticks(np.arange(-150,130,30),labels=["","","","","","","30","60","90","120"],
  42.            verticalalignment='center',horizontalalignment='center')

  43. plt.grid(which='major',axis ="x", linestyle='-', linewidth='0.5', color='gray',alpha=0.5)
  44. plt.grid(which='major',axis ="y", linestyle='-', linewidth='0.5', color='gray',alpha=0.5)
  45. fig.savefig('径向柱图2.pdf')
复制代码


已有 1 人评分学术水平 热心指数 信用等级 收起 理由
chentibiao + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

Raymond
Stata 17.0, MP(4)

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-20 13:37