python - 对三角形区域进行着色
问题描述
这是我的代码:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
x = np.random.randint(1,100,100)
y = np.random.randint(-500,200,100)
plt.scatter(x, y)
ax = plt.gca()
ax.invert_yaxis()
x1, y1 = [0, 100], [-200, 0]
x2, y2 = [0, 0], [0, -200]
x3, y3 = [0, 100], [0, 0]
plt.plot(x1,y1,x2,y2,x3,y3, marker = 'o')
plt.show()
plt.show()
有两个问题
- 我希望三角形手臂的颜色相同,我该怎么做?
- 我想对三角形下方的区域进行阴影处理,使其半透明,即我可以看到三角形内部散点图的点。那可行吗?
解决方案
更一般地说,您可以使用 matplotlib 补丁和集合(示例)填充任何多边形:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
x = np.random.randint(1,100,100)
y = np.random.randint(-500,200,100)
plt.scatter(x, y)
ax = plt.gca()
ax.invert_yaxis()
vertices = np.array([[0,0],[0,-200.0],[100.0,0]])
patches = []
triangle = Polygon(vertices, True)
patches.append(triangle)
p = PatchCollection(patches, alpha=0.4)
ax=plt.gca()
ax.add_collection(p)
plt.show()
推荐阅读
- c++ - 如何在c ++(linux)中获取具有文件名的文件的完整路径
- firefox-addon - tabs.executeScript - 如何判断内容脚本是否被注入?
- android - EditText 自动用点替换一行中的最后一个字符
- python - 实时动态更新 django 模板
- laravel - 类控制器不存在
- swift - 在请求完成之前执行的完成处理程序
- javascript - 如何在单选按钮上调用欧芹方法
- node.js - mongodb中的树结构,带有用于读取的父子关系
- ruby-on-rails - 如何获取belong_to记录的大小
- c++ - 在 std::unordered_set/std::unordered_map 中 KeyEqual 的用处