当前位置: 首页 > news >正文

商务网站建设与维护 课件金牛区建设审批网站

商务网站建设与维护 课件,金牛区建设审批网站,武昌专业的网络推广团队,wordpress所有函数python 绘图 —— 绘制从顶部向底部显示的柱形图[ax.bar()] 效果图如下所示: 就是这个样子,一般比较少见将柱形图从上往下绘制的。可能是会为了更好的展示数据对比结果吧。这里绘图的主要思路如下: 利用ax.twinx()这个函数生成一个新的x轴…

python 绘图 —— 绘制从顶部向底部显示的柱形图[ax.bar()]

效果图如下所示:
在这里插入图片描述
就是这个样子,一般比较少见将柱形图从上往下绘制的。可能是会为了更好的展示数据对比结果吧。这里绘图的主要思路如下:

  • 利用ax.twinx()这个函数生成一个新的x轴(相当于复制了一个x轴)
  • 使用ax.invert_yaxis()这个函数反转新x轴对应的y轴,使其从图中左边0-100排列变成100-0排列,这样就保证了图片从顶往底显示的效果
  • 手动设置新的y轴的ticklabel,使其展现为0-100排列。

具体步骤如下所示:

1、首先是生成随机一组数据并绘制柱形图:


import numpy as np
import matplotlib.ticker as mticker
import matplotlib.pyplot as plt
###########################################################################
plt.rcParams['font.sans-serif']=['SimHei']#中文 
plt.rcParams['axes.unicode_minus']=False  #显示负号
# ####################################data#################################
n=6
y  = np.linspace(10,70,n)
y1 = np.linspace(10,60,n)
y2 = np.linspace(10,50,n)
x=np.linspace(2000,2020,n)data = np.array([y,y1,y2])
width = 0.6
# ####################################draw#################################
fig=plt.figure(figsize=(5,7),dpi=500)#添加画布等
ax=fig.add_axes([0,0,1,0.3])
ax.set(xlim=(2000,2021),ylim=(0,100)) 
bar1=ax.bar(x - width,data[0],# color=np.where(y>0,'r','b'), #判断大于0的为红色,负的为蓝色width=0.5,   #柱形宽度align='center', #柱形的位置edge/center alpha=0.8,    #柱形透明度hatch='*',    #柱形表明的形状样式edgecolor='k',#柱形边缘颜色bottom=0.01   #柱形离底部的距离)
bar2=ax.bar(x + width,data[1],# color=np.where(y>0,'r','b'), #判断大于0的为红色,负的为蓝色width=0.5,   #柱形宽度align='center', #柱形的位置edge/center alpha=0.8,    #柱形透明度hatch='*',    #柱形表明的形状样式edgecolor='k',#柱形边缘颜色bottom=0.01   #柱形离底部的距离)
bar3=ax.bar(x ,data[2],# color=np.where(y>0,'r','b'), #判断大于0的为红色,负的为蓝色width=0.5,   #柱形宽度align='center', #柱形的位置edge/center alpha=0.8,    #柱形透明度hatch='*',    #柱形表明的形状样式edgecolor='k',#柱形边缘颜色bottom=0.01   #柱形离底部的距离)
##########################################################################
ax.set(xlim=(1999,2021),ylim=(0,100))   #设置x、y轴的最大最小范围
ax.set_xticks(np.linspace(2000, 2020, n)) #设置x轴显示的标签         #添加注释
ax.axhline(y=0,c='k',ls=':',lw=1)    #添加水平线,设置颜色,位置,水平线的style
#设置轴的参数,间隔
ax.tick_params(axis='both',which='both',direction='in')
ax.yaxis.set_minor_locator(mticker.MultipleLocator(5))
ax.xaxis.set_minor_locator(mticker.MultipleLocator(5))
# 设置label
ax.set_xlabel('年份 (Year)')
ax.set_ylabel('数值 (%) ')
ax.set_title('柱状图',fontsize=10)

在这里插入图片描述

2、复制一个新的x轴,并生成一组数据绘制柱形图

ax2 = ax.twinx()
ax2.set(xlim=(1999,2021),ylim=(100)) 
bar4 = ax2.bar(x,np.linspace(4,6,n),width=0.5,   #柱形宽度align='center', #柱形的位置edge/center alpha=0.8,    #柱形透明度hatch='*',    #柱形表明的形状样式edgecolor='k',#柱形边缘颜色bottom=0.01  , #柱形离底部的距离color='r')
ax2.yaxis.set_minor_locator(mticker.MultipleLocator(5))

在这里插入图片描述

3、翻转y轴,稍微调整一下tick的方向

ax2.invert_yaxis()
ax2.tick_params(axis='both',tickdir='in')
ax2.tick_params(which='minor',tickdir='in')

在这里插入图片描述

4、 重新定义ticklabel的值

ax2.set_yticklabels(['0','20','40','60','80','100'][::-1])

在这里插入图片描述

以下是全部的代码:

# -*- coding: utf-8 -*-
"""
Created on Tue Feb 21 14:49:36 2023@author: jianpu@blog :  https://blog.csdn.net/weixin_44237337?spm=1000.2115.3001.5343@email: 211311040008@hhu.edu.cnintroduction : keep learning althongh walk slowly
"""import numpy as np
import matplotlib.ticker as mticker
import matplotlib.pyplot as plt
###########################################################################
plt.rcParams['font.sans-serif']=['SimHei']#中文 
plt.rcParams['axes.unicode_minus']=False  #显示负号
# ####################################data#################################
n=6
y  = np.linspace(10,70,n)
y1 = np.linspace(10,60,n)
y2 = np.linspace(10,50,n)
x=np.linspace(2000,2020,n)data = np.array([y,y1,y2])
width = 0.6
# ####################################draw#################################
fig=plt.figure(figsize=(5,7),dpi=500)#添加画布等
ax=fig.add_axes([0,0,1,0.3])
ax.set(xlim=(2000,2021),ylim=(0,100)) 
bar1=ax.bar(x - width,data[0],# color=np.where(y>0,'r','b'), #判断大于0的为红色,负的为蓝色width=0.5,   #柱形宽度align='center', #柱形的位置edge/center alpha=0.8,    #柱形透明度hatch='*',    #柱形表明的形状样式edgecolor='k',#柱形边缘颜色bottom=0.01   #柱形离底部的距离)
bar2=ax.bar(x + width,data[1],# color=np.where(y>0,'r','b'), #判断大于0的为红色,负的为蓝色width=0.5,   #柱形宽度align='center', #柱形的位置edge/center alpha=0.8,    #柱形透明度hatch='*',    #柱形表明的形状样式edgecolor='k',#柱形边缘颜色bottom=0.01   #柱形离底部的距离)
bar3=ax.bar(x ,data[2],# color=np.where(y>0,'r','b'), #判断大于0的为红色,负的为蓝色width=0.5,   #柱形宽度align='center', #柱形的位置edge/center alpha=0.8,    #柱形透明度hatch='*',    #柱形表明的形状样式edgecolor='k',#柱形边缘颜色bottom=0.01   #柱形离底部的距离)
##########################################################################
ax.set(xlim=(1999,2021),ylim=(0,100))   #设置x、y轴的最大最小范围
ax.set_xticks(np.linspace(2000, 2020, n)) #设置x轴显示的标签         #添加注释
ax.axhline(y=0,c='k',ls=':',lw=1)    #添加水平线,设置颜色,位置,水平线的style
#设置轴的参数,间隔
ax.tick_params(axis='both',which='both',direction='in')
ax.yaxis.set_minor_locator(mticker.MultipleLocator(5))
ax.xaxis.set_minor_locator(mticker.MultipleLocator(5))
# 设置label
ax.set_xlabel('年份 (Year)')
ax.set_ylabel('数值 (%) ')
ax.set_title('柱状图',fontsize=10)#添加图例
ax2 = ax.twinx()
ax2.invert_yaxis()
ax2.set(xlim=(1999,2021),ylim=(100)) 
ax2.set_yticklabels(['0','20','40','60','80','100'][::-1])
bar4 = ax2.bar(x,np.linspace(4,6,n),width=0.5,   #柱形宽度align='center', #柱形的位置edge/center alpha=0.8,    #柱形透明度hatch='*',    #柱形表明的形状样式edgecolor='k',#柱形边缘颜色bottom=0.01  , #柱形离底部的距离color='r')
ax2.yaxis.set_minor_locator(mticker.MultipleLocator(5))
ax2.tick_params(axis='both',tickdir='in')
ax2.tick_params(which='minor',tickdir='in')
ax.legend([bar1,bar2,bar3,bar4],['柱形1','柱形2','柱形3','柱形4'])
plt.show()

具体代码是按照之前的一个教程修改的:绘制正负区分的柱形图[ax.bar()]

				欢迎评论或者加我交流,分享更简单的绘制方法~
http://www.yayakq.cn/news/533974/

相关文章:

  • 北京好的网站开发电商一年可以赚多少钱
  • 破解要钱网站软件网站开发甘肃
  • 一站式服务平台入口2017年做网站好难
  • 网站建设完成报告建一个网站需要购买域名 虚拟主机
  • 百度做地图的网站网页制作视频教程百度云下载
  • 心理咨询师报名官网入口wordpress 优化seo
  • 淘宝流量网站网站必须天天更新吗
  • 建设银行小微企业网站进不了两学一做 知识竞赛网站
  • 网站代理做反向服务器搭建vps教程
  • 陕西秦地建设有限公司网站天河网站建设企业
  • wap网站制作公司平邑做网站
  • 海外购物网站建设西安的网站建设网站
  • 网站备案购买政务网站建设 发言
  • 公司怎么与网站进行活动推广江西做网站哪家好
  • 链接制作网站招生推广渠道有哪些呢
  • windows 2008 搭建网站长沙做痔疮东大医院L网站
  • 网站开发设计培训价格广告设计公司行业地位
  • 太原百度网站快速排名宁波app开发公司
  • 烟台高新区网站公司网站的建设内容怎么写
  • 游乐园网站建设如何制作flash网站
  • 电商网站 厦门企业官网网页
  • 最好网站建设制作是那个包装设计网课答案
  • 爱站网关键词密度爱网站无法登录怎么回事
  • 怎么给别人做网站网站野花香视频在线观看社区
  • 门户和网站的区别游戏类网站备案
  • 网站建设的要求和策划哈尔滨房管局官网查询
  • 网站导航设置企业官网是什么意思
  • 南京网站制作网页东莞seo优化收费
  • 宏润建设集团股份有限公司网站阳江网站关键字优化
  • 个人公司网站建设附近电脑培训班位置