python 条形图填充疏密_如何用箭头填充pyplot条形图的条形图?
这里有一个解决方案,它使用ax.annotate在每个条内绘制箭头。由于OP不太清楚箭头应该是什么样子,所以我把每个条分成矩形(在代码中我称它们为squares,但如果你确定了绘图的纵横比,它们就只是正方形),并为每个矩形绘制了一个中心箭头,其方向由用户提供的角度给出(这里是一个称为wind_direction)。在
在代码中,我将Axes的纵横比设置为x-和y-极限的纵横比,这使得Axes呈正方形,因此可以轻松绘制长度相同的箭头,而不受其方向的影响。如果不需要,可以注释掉相应的行。如果箭头的长度必须相同而不受限制,则必须计算图形的纵横比,例如请参见here如何进行此操作。在
我还用度数标注了每个条上的风向,以便检查箭头是否与给定的风向一致。在from matplotlib import pyplot as plt
import numpy as np
fig,ax = plt.subplots()
x = np.arange(12)
wind_strength = np.random.random(12)
wind_direction = np.linspace(0,2*np.pi,12, endpoint = False)
colors = ['green', 'yellow', 'blue', 'pink', 'orange']
bar_cols = [colors[i%len(colors)] for i,s in enumerate(wind_strength)]
bars = ax.bar(x,wind_strength, color=bar_cols)
##computing the aspect ratio of the plot ranges:
xlim = ax.get_xlim()
ylim = ax.get_ylim()
aspect = (xlim[1]-xlim[0])/(ylim[1]-ylim[0])
##comment out this line if you don't care about the arrows being the
##same length
ax.set_aspect(aspect)
##dividing each bar into 'squares' and plotting an arrow into each square
##with orientation given by wind direction
for bar,angle in zip(bars,wind_direction):
(x1,y1),(x2,y2) = bar.get_bbox().get_points()
w = x2-x1
h = w/aspect
x_mid = (x1+x2)/2
dx = np.sin(angle)*w
dy = np.cos(angle)*h
##the top and bottom of the current square:
y_bottom = y1
y_top = y_bottom+h
##draw at least one arrow (for very small bars)
first = True
while y_top < y2 or first:
y_mid = (y_top+y_bottom)/2
ax.annotate(
'',xytext=(x_mid-dx/2,y_mid-dy/2),
xy=(x_mid+dx/2,y_mid+dy/2),
arrowprops=dict(arrowstyle="->"),
)
##next square
y_bottom = y_top
y_top += h
##first arrow drawn:
first = False
##annotating the wind direction:
ax.text(x_mid, y2+0.05, '{}'.format(int(180*angle/np.pi)), ha = 'center')
plt.show()
最终结果如下:
希望这有帮助。在
python 条形图填充疏密_如何用箭头填充pyplot条形图的条形图?相关推荐
- java 填充字符串_如何用Java填充字符串?
素胚勾勒不出你 从Java 1.5开始,String.format()可用于左/右衬垫给定的字符串.public static String padRight(String s, int n) { r ...
- java我的世界填充方块_我的世界填充指令 填充TNT的指令是什么
我的世界填充指令 填充TNT的指令是什么.在我的世界里面有一些指令是具有填充效果的,那下面游戏园小编就给大家将我的世界填充指令介绍一下吧!还有TNT填充指令又是什么都会一一介绍的,那感兴趣的玩家不妨进 ...
- python 条形图填充疏密_教你利用Python玩转histogram直方图的五种方法
直方图 直方图是一个可以快速展示数据概率分布的工具,直观易于理解,并深受数据爱好者的喜爱.大家平时可能见到最多就是 matplotlib,seaborn 等高级封装的库包,类似以下这样的绘图. 本篇博 ...
- python 条形图填充疏密_可视化库-Matplotlib-条形图(第四天)
1.画两个条形图,bar和barh, 同时axes[0].axhline画一条横线,axes[1].axvline画一条竖线 importnumpy as npimportmatplotlib.pyp ...
- python 条形图填充疏密_如何在python中绘制密度图?
我有一个.txt文件,其中包含2D地图中规则间隔点的x,y值,第三个坐标是该点的密度.4.882812500000000E-004 4.882812500000000E-004 0.9072267 1 ...
- python 条形图填充疏密_python matplotlib模块: fill_between(填充曲线)
填充曲线可以在前面plot绘制的曲线的基础上填充这些不同曲线之间的差异, 可以更直观的看出差异. 数据集 源码: # coding=utf-8 import pandas as pd from mat ...
- 用python画六边形并填充颜色_如何用Python,画一个正多边形,长度和颜色还是任意的!...
Python画基本形状,要用到自带的turtle库,这是个简单绘图的入门小工具. 任务设定如上,下面来一点点拆解它. 从键盘获取用户输入的边数. 画笔形状由原来的三角形,改为海龟形状. 长度随机产生, ...
- python三个箭头怎么打出来_如何用箭头键在Python 3中移动海龟
我有解决办法给你.代码并不理想,但它可以工作,您可以对其进行处理.你必须意识到,乌龟的位置不好,你必须调整它.这就是为什么我在设置方法我的乌龟抬头. 现在,您必须记住,right(deg)和left( ...
- python贪吃蛇控制台_如何用Python写一个贪吃蛇AI
前言 这两天在网上看到一张让人涨姿势的图片,图片中展示的是贪吃蛇游戏, 估计大部分人都玩过.但如果仅仅是贪吃蛇游戏,那么它就没有什么让人涨姿势的地方了. 问题的关键在于,图片中的贪吃蛇真的很贪吃XD, ...
最新文章
- php打印warning日志引发的core追查
- C++ 面向对象(三)异常 :异常概念、异常的匹配规则、异常安全、异常体系
- LeetCode 659. 分割数组为连续子序列(哈希)
- WordPress更改“固定链接”后 页面404原因及解决方法(Nginx版)
- 数据结构c java_Java - 数据结构
- nginx重写与重定向区别_nginx学习十一 rewrite url重写以及重定向
- DNN永日新闻模块(YongRi)免费1.00.09版本下载
- 如何启动一个Vue3.x项目
- QQ聊天记录恢复深度研究
- 记第一次FPV模式飞行穿越机的感受
- idea 安装uml 画图工具
- mtk 手机低电无法关机,电池容量一直显示1%
- 来自百度的移动应用框架Clouda:快速开发,一键部署BAE
- LigerUI的简单使用示例
- 11083 旅游背包(优先做)
- 学好编程需要英语很好吗
- 约瑟夫环问题(数学递推法)
- RabbitMQ之web界面解析
- keytool生成证书的方法
- VMware12卸载之后安装其他版本导致回滚操作的解决方法之一