在数据中,对于每个x,y值绘制水平和垂直线。
在数据中,对于每个x,y值绘制水平和垂直线。
我正在使用以下代码绘制散点图:\n
fig, ax = plt.subplots(figsize=(20, 15)) ax.scatter(found_devices_df['time'], found_devices_df['label'], c=found_devices_df['label'], marker='.', s=found_devices_df['count']*100, alpha=.6) fig.autofmt_xdate()
\n我想要在x轴和y轴的每个级别上分别绘制水平线和垂直线(不是等距的网格)。我的x轴上有时间戳,y轴上有设备类型。\n我应该如何使用ax.hline
和ax.vline
来实现这一点?\n我尝试使用ax.axvline(found_devices_df[\'time\'], color=\"red\", linestyle=\"--\")
来绘制每个x时间戳的垂直线,但出现错误ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
。
问题:如何在给定的数据中为每个x、y值绘制水平和垂直线?
原因:在给定的数据中,需要绘制每个x、y值对应的水平和垂直线。
解决方法:使用matplotlib库的vlines()和hlines()函数来绘制水平和垂直线。
具体步骤如下:
1. 导入numpy和matplotlib.pyplot库:
import numpy as np import matplotlib.pyplot as plt
2. 创建一个图形对象和一个坐标轴对象:
fig, ax = plt.subplots()
3. 生成数据:
n = 25 x, y = np.random.rand(2, n)
4. 绘制散点图:
ax.scatter(x, y, c=color, s=scale, label=color, alpha=0.8, edgecolors='none')
5. 绘制垂直线:
ax.vlines(x, ymin=0.0, ymax=1.0, color=color, linestyle="--")
6. 绘制水平线:
ax.hlines(y, xmin=0.0, xmax=1.0, ...)
7. 显示图形:
plt.show()
通过以上步骤,可以在给定的数据中为每个x、y值绘制水平和垂直线。
图像示例:
