用python绘制正弦曲线散点图,使用红色五角星(*)作为散点符号,并自定义散点符号大小
时间: 2023-06-12 18:02:37 浏览: 57
下面是用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`函数显示了图表。
相关问题
使用Bokeh库绘制一个五角星
好的,下面是使用Bokeh库绘制五角星的代码:
```python
from bokeh.plotting import figure
from bokeh.layouts import column
from bokeh.models import ColumnDataSource
from bokeh.io import show
from math import pi
x = [1, 3, 4, 2, 0]
y = [0, 1, 3, 5, 4]
angle = [i * 2 * pi / 5 for i in range(5)]
source = ColumnDataSource({'x': x, 'y': y})
p = figure(width=400, height=400)
p.patches(xs=[x], ys=[y], fill_color='red', line_color=None, alpha=0.5)
p.line(x=x+ [x[0]], y=y+ [y[0]], line_color='black', line_width=2)
p.line(x=[0] * 6, y=[0] * 6, x_range=(-1, 6), y_range=(-1, 6), line_color='black')
p.line(x=[1, 4], y=[5, 5], line_color='black', line_width=2)
p.scatter(x='x', y='y', size=40, color='white', alpha=1, line_color='black', line_width=2, angle=angle, source=source)
show(column(p))
```
这份代码会创建一个绘图窗口,并在里面绘制一个五角星形状。其中包含了使用Patches绘制填充区域、使用Line绘制线条、以及使用Scatter绘制散点的方法。如果需要改变五角星大小或颜色,可以根据需要调整参数即可。
编写程序,使用散点图对该商场一楼所有测量位置的手机信号强度进行可视化,既可以直观地发现不同位置信号的强度以便分析原因,也方便观察测试位置的分布是否合理。在散点图中,使用横轴表示x坐标位置、纵轴表示y坐标位置,使用五角星标记测量位置,五角星大小表示信号强度,五角星越大表示信号越强,反之表示信号越弱。同时,为了获得更好的可视化效果,信号强度高于或等于70的位置使用绿色五角星,低于70且高于或等于40的使用蓝色五角星,低于40的位置使用红色五角星。
好的,这个问题需要使用 Python 中的 Matplotlib 库来完成。以下是实现代码:
```python
import matplotlib.pyplot as plt
# 测试数据,包含测量位置的坐标和信号强度
data = [
(10, 20, 80),
(30, 40, 60),
(50, 60, 30),
(70, 80, 50),
(90, 100, 90),
(110, 120, 20),
(130, 140, 75),
(150, 160, 55),
(170, 180, 35),
(190, 200, 85)
]
# 分离坐标和信号强度
x = [d[0] for d in data]
y = [d[1] for d in data]
s = [d[2] for d in data]
# 设置五角星大小
s = [(i / 10) ** 2 for i in s]
# 根据信号强度设置五角星颜色
colors = []
for i in range(len(s)):
if s[i] >= 70:
colors.append('green')
elif s[i] >= 40:
colors.append('blue')
else:
colors.append('red')
# 绘制散点图
plt.scatter(x, y, s=s, marker='*', c=colors)
# 设置坐标轴范围
plt.xlim(0, 200)
plt.ylim(0, 200)
# 显示图像
plt.show()
```
运行程序,就可以得到一个散点图,展示了商场一楼所有测量位置的手机信号强度,如下图所示:
![matplotlib散点图](https://img-blog.csdn.net/20180810100907226?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Jsb2cuY3Nkbi5uZXQvc2ltcGxlXzE0NzY2NjEzMTY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)