用python绘制正弦曲线散点图,使用红色五角星(*)作为散点符号,并自定义散点符号大小
时间: 2023-06-12 11:02:37 浏览: 210
下面是用Python绘制正弦曲线散点图的示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成x轴坐标数据
x = np.linspace(0, 2*np.pi, 100)
# 计算对应的y轴坐标数据
y = np.sin(x)
# 创建散点图
plt.scatter(x, y, s=50, marker='*', color='red')
# 设置图表标题和坐标轴标签
plt.title('Sin Function Scatter Plot')
plt.xlabel('x')
plt.ylabel('y')
# 显示图表
plt.show()
```
在上面的代码中,我们首先使用`numpy`库生成了一组x轴坐标数据,然后计算出对应的y轴坐标数据。然后,我们使用`matplotlib`库的`scatter`函数创建了散点图,其中`s`参数用于设置散点符号的大小,`marker`参数用于设置散点符号的形状,`color`参数用于设置散点符号的颜色。最后,我们设置了图表的标题和坐标轴标签,并通过`show`函数显示了图表。
相关问题
python散点图中怎么绘制五角星形状的点
在Python的matplotlib库中,绘制五角星形状的散点图需要一些额外的工作,因为matplotlib本身并不直接支持五角星标记。但是,我们可以借助第三方库`patch`或者`descartes`结合数学计算来实现。下面是一个简单的步骤:
首先,你需要安装`descartes`库,如果还没有安装可以使用pip安装:
```bash
pip install descartes
```
然后,你可以创建一个函数来生成五角星的数据,接着在散点图上用这些数据点作为顶点绘制。
这是一个示例代码片段:
```python
import matplotlib.pyplot as plt
from descartes import PolygonPatch
import numpy as np
def draw_star(x, y, size=1):
t = np.linspace(0, 2*np.pi, num=5)
x_star = x + size * np.cos(t)
y_star = y + size * np.sin(t)
return [(x_, y_) for t_ in t for x_, y_ in zip(x_star, y_star)]
# 创建五角星数据
x, y = [0], [0]
size = 10 # 五角星大小
star_points = draw_star(x, y, size)
fig, ax = plt.subplots()
ax.scatter(*zip(*star_points), s=size*100, color='red') # 散点标记
patch = PolygonPatch(star_points, facecolor='none', edgecolor='blue', alpha=0.5) # 绘制边框
ax.add_patch(patch)
plt.show()
```
在这个例子中,我们先定义了一个`draw_star`函数,它接收坐标`(x, y)`和大小`size`,然后按照五角星的几何原理计算出各个顶点的位置。然后我们将这些顶点添加到散点图的`scatter`函数中,并在图上添加了一个表示五角星边界的`PolygonPatch`。
用jupyter notebook绘制大小与位置有关的红色散点五角星,使得红色五角星从左上到右下越来越小
在Jupyter Notebook中,我们可以使用matplotlib库来绘制大小与位置相关的红色散点五角星。首先,你需要安装`matplotlib`和`scipy`库,如果没有,可以使用下面的命令安装:
```bash
pip install matplotlib scipy
```
然后,你可以按照以下步骤创建一个动态变化的五角星图形:
1. 导入所需的模块:
```python
import matplotlib.pyplot as plt
from matplotlib.patches import RegularPolygon
import numpy as np
```
2. 定义一个函数,用于生成五角星的位置和大小数组:
```python
def star_positions_and_sizes(n_points=50):
# 创建一个从左上到右下的线性x和y坐标
x = np.linspace(0, 1, n_points) + 0.05 * np.arange(n_points)
y = np.linspace(1, 0, n_points)
# 计算每个五角星的位置和大小
positions = [(x[i], y[i]) for i in range(n_points)]
sizes = np.linspace(1, 0.1, n_points)[::-1] # 从大到小
return positions, sizes
```
3. 绘制五角星:
```python
def draw_star(positions, sizes, color='red'):
fig, ax = plt.subplots()
for pos, size in zip(positions, sizes):
star = RegularPolygon(pos, numVertices=5, radius=size, fill=True, facecolor=color)
ax.add_patch(star)
ax.set_xlim([0, 1])
ax.set_ylim([0, 1])
ax.axis('off') # 关闭坐标轴
plt.show()
# 调用函数并展示结果
positions, sizes = star_positions_and_sizes()
draw_star(positions, sizes)
```
这个代码会创建一系列从左上到右下的红色五角星,大小从大到小依次减小。
阅读全文