mirror of
https://github.com/Estom/notes.git
synced 2026-04-02 02:20:25 +08:00
matplotlib & pandas
This commit is contained in:
67
Python/matplotlab/gallery/mplot3d/polys3d.md
Normal file
67
Python/matplotlab/gallery/mplot3d/polys3d.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# 生成多边形以填充3D线图
|
||||
|
||||
演示如何创建填充线图下空间的多边形。 在这个例子中,多边形是半透明的,产生一种“锯齿状的彩色玻璃”效果。
|
||||
|
||||

|
||||
|
||||
```python
|
||||
# This import registers the 3D projection, but is otherwise unused.
|
||||
from mpl_toolkits.mplot3d import Axes3D # noqa: F401 unused import
|
||||
|
||||
from matplotlib.collections import PolyCollection
|
||||
import matplotlib.pyplot as plt
|
||||
from matplotlib import colors as mcolors
|
||||
import numpy as np
|
||||
|
||||
# Fixing random state for reproducibility
|
||||
np.random.seed(19680801)
|
||||
|
||||
|
||||
def cc(arg):
|
||||
'''
|
||||
Shorthand to convert 'named' colors to rgba format at 60% opacity.
|
||||
'''
|
||||
return mcolors.to_rgba(arg, alpha=0.6)
|
||||
|
||||
|
||||
def polygon_under_graph(xlist, ylist):
|
||||
'''
|
||||
Construct the vertex list which defines the polygon filling the space under
|
||||
the (xlist, ylist) line graph. Assumes the xs are in ascending order.
|
||||
'''
|
||||
return [(xlist[0], 0.), *zip(xlist, ylist), (xlist[-1], 0.)]
|
||||
|
||||
|
||||
fig = plt.figure()
|
||||
ax = fig.gca(projection='3d')
|
||||
|
||||
# Make verts a list, verts[i] will be a list of (x,y) pairs defining polygon i
|
||||
verts = []
|
||||
|
||||
# Set up the x sequence
|
||||
xs = np.linspace(0., 10., 26)
|
||||
|
||||
# The ith polygon will appear on the plane y = zs[i]
|
||||
zs = range(4)
|
||||
|
||||
for i in zs:
|
||||
ys = np.random.rand(len(xs))
|
||||
verts.append(polygon_under_graph(xs, ys))
|
||||
|
||||
poly = PolyCollection(verts, facecolors=[cc('r'), cc('g'), cc('b'), cc('y')])
|
||||
ax.add_collection3d(poly, zs=zs, zdir='y')
|
||||
|
||||
ax.set_xlabel('X')
|
||||
ax.set_ylabel('Y')
|
||||
ax.set_zlabel('Z')
|
||||
ax.set_xlim(0, 10)
|
||||
ax.set_ylim(-1, 4)
|
||||
ax.set_zlim(0, 1)
|
||||
|
||||
plt.show()
|
||||
```
|
||||
|
||||
## 下载这个示例
|
||||
|
||||
- [下载python源码: polys3d.py](https://matplotlib.org/_downloads/polys3d.py)
|
||||
- [下载Jupyter notebook: polys3d.ipynb](https://matplotlib.org/_downloads/polys3d.ipynb)
|
||||
Reference in New Issue
Block a user