Python 在六边形中绘制三角形并不容易
我正在使用matplotlib 我设法用plt.scatter绘制了一个六边形的2D数组,其中我将六边形的标记设置为“h”,并将大小设置为s=500左右。通过简单的数学运算,我为每个六边形的位置制作了数组,将节距归一化为1。这是我的六边形图,按预期绘制 然而,我想在这些六边形中画出6个相等的三角形,这并不容易。下面是我用来绘制三角形的部分代码:Python 在六边形中绘制三角形并不容易,python,matplotlib,triangular,Python,Matplotlib,Triangular,我正在使用matplotlib 我设法用plt.scatter绘制了一个六边形的2D数组,其中我将六边形的标记设置为“h”,并将大小设置为s=500左右。通过简单的数学运算,我为每个六边形的位置制作了数组,将节距归一化为1。这是我的六边形图,按预期绘制 然而,我想在这些六边形中画出6个相等的三角形,这并不容易。下面是我用来绘制三角形的部分代码: fig4, ax4 = plt.subplots() ax4.set_aspect('equal') for i in range(len(powtri
fig4, ax4 = plt.subplots()
ax4.set_aspect('equal')
for i in range(len(powtri)):
for j in range(len(powtri[i])):
plt.scatter(x=X_tric[i][j], y=Y_tric[i][j], s=size, marker=markers[i][j], c=powtri[i][j], cmap='jet')
cbar3 = plt.colorbar(fraction=0.03, pad=0.04)
cbar3.set_label('Normalized assembly power')
plt.axis('off')
plt.title('Triangle Powers')
我的选项是使用标记4和5或标记数组中使用的标记来交替左/右三角形,然后计算每个三角形的中心或每个三角形的尖端位置,但实际的问题是,我的图片总是被难看的格式截去,三角形标记的大小和位置也在不断变化,所以我最终得到了
我是不是走错了路
谢谢。我想你需要一个等边三角形来做你想做的事情,我认为4,5,
import matplotlib.pyplot as plt
from matplotlib.markers import MarkerStyle
import numpy as np
fig, ax = plt.subplots()
length = np.sqrt(1**2 - 0.5**2)
m = MarkerStyle([(0, 0), (1, 0), (0.5, length)])
for deg in range(6):
m._transform.rotate_deg(60)
ax.scatter([0], [0], marker=m, s=10000)
fig.show()
你可以得到这个。我希望这对实现你的目标有用
听起来是个好主意,但我已经成功了。这仅适用于六角形垂直指向的左三角形和右三角形。我不得不将我的主数组相应地分成左三角形和右三角形。然后,我将市场规模与屏幕规模关联起来,以便为任何客户提供服务。还有塔达!