matplotlib绘制散点图如何将各点坐标显示在图上
时间: 2023-12-24 21:02:42 浏览: 45
在matplotlib中,可以使用annotate()函数将文本注释添加到散点图中的每个数据点上。
具体步骤如下:
1. 创建散点图
2. 遍历每个数据点,并使用annotate()函数添加文本注释
示例代码:
```python
import matplotlib.pyplot as plt
# 创建散点图
x = [1, 2, 3, 4, 5]
y = [10, 8, 6, 4, 2]
plt.scatter(x, y)
# 添加数据点的坐标文本注释
for i in range(len(x)):
plt.annotate(f'({x[i]}, {y[i]})', xy=(x[i], y[i]), textcoords='offset points', xytext=(0,10), ha='center')
plt.show()
```
在上面的示例代码中,`annotate()`函数的参数如下:
- `s`:要添加的文本注释内容,这里使用了f-string格式化字符串,将数据点的坐标表示为文本注释。
- `xy`:被注释的数据点的坐标
- `textcoords`:文本注释的位置设置,这里设置为相对于被注释点的偏移量(offset points)
- `xytext`:文本注释的偏移量,这里设置为在被注释点的正上方10个像素
- `ha`:水平对齐方式,这里设置为居中对齐
运行上述代码,即可在散点图上看到每个数据点的坐标文本注释。
相关问题
Python中用matplotlib绘制折线图,且横坐标为中文
要在Python中用matplotlib绘制折线图,且横坐标为中文,可以按照以下步骤操作:
1. 安装中文字体库
在Python中绘制中文时,需要使用支持中文的字体库。可以从网上下载中文字体库,或者使用系统自带的中文字体库。例如,在Windows系统下,可以使用SimHei字体,而在Ubuntu系统下,可以使用WenQuanYi字体。
2. 导入matplotlib和中文支持库
在Python代码中,需要导入matplotlib库和支持中文的库,例如:
```python
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)
```
其中,FontProperties函数用于设置字体,fname参数用于指定字体文件的路径,size参数用于指定字体大小。
3. 绘制折线图
在绘制折线图时,需要设置中文标签和标题。例如:
```python
plt.plot(x, y)
plt.xlabel("日期", fontproperties=font)
plt.ylabel("销售额(万元)", fontproperties=font)
plt.title("2019年销售额走势图", fontproperties=font)
plt.xticks(range(len(x)), x, fontproperties=font)
plt.show()
```
其中,xlabel()和ylabel()用于设置横纵坐标的标签,title()用于设置图表的标题,xticks()用于设置横坐标刻度的标签和位置。注意,xticks()中的第一个参数是刻度位置,第二个参数是刻度标签,这里使用range(len(x))来指定刻度位置,x作为刻度标签。
完整代码如下:
```python
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)
x = ["一月", "二月", "三月", "四月", "五月", "六月"]
y = [20, 35, 40, 30, 25, 45]
plt.plot(x, y)
plt.xlabel("日期", fontproperties=font)
plt.ylabel("销售额(万元)", fontproperties=font)
plt.title("2019年销售额走势图", fontproperties=font)
plt.xticks(range(len(x)), x, fontproperties=font)
plt.show()
```
运行代码后,就可以得到一个折线图,横坐标为中文标签。
matplotlib绘制散点图怎样随机生成点且同时定义坐标轴数据
可以使用numpy库中的random函数来随机生成点。具体代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
# 随机生成100个点,范围在[0, 10]
x = np.random.uniform(0, 10, 100)
y = np.random.uniform(0, 10, 100)
# 设置散点图坐标轴范围
plt.xlim(0, 10)
plt.ylim(0, 10)
# 绘制散点图
plt.scatter(x, y)
plt.show()
```
其中,np.random.uniform函数用于随机生成坐标点,xlim和ylim函数用于设置坐标轴范围,scatter函数用于绘制散点图。