下面,我创建了一个简单的数据集示例。我有4分,每一步都改变了他们的价值。这些点绘制在x,y位置,我希望它们的大小随其值而变化。还有另一个问题,每个点都由一条线连接,我不想要它。 (我不能使用plt.scatter)
import pandas as pd
import matplotlib.pyplot as plt
data=[[1,1,3],[1,2,1],[2,1,9],[2,2,0]]
a=pd.DataFrame(data)
a.columns=['x','y','value']
data2=[[1,1,5],[1,2,2],[2,1,1],[2,2,3]]
b=pd.DataFrame(data2)
b.columns=['x','y','value']
data3=[[1,1,15],[1,2,7],[2,1,4],[2,2,8]]
c=pd.DataFrame(data3)
c.columns=['x','y','value']
final=[a,b,c]
for i in range(0,len(final)):
fig, ax = plt.subplots()
plt.plot(final[i]['x'],final[i]['y'],marker='o',markersize=22)
与此相关,我修复了线条出现的尺寸,该如何删除呢?
如果我更改了标记大小,它将不起作用
for i in range(0,len(final)):
fig, ax = plt.subplots()
plt.plot(final[i]['x'],final[i]['y'],marker='o',markersize=final[i]['value'])
就像我之前说的,我想要的结果是抽搐中的情节不同,只有点的维数取决于它们的值
最佳答案
由于不能使用散点,因此需要循环使用markersize
的值,因为'o'
不接受数组,而是接受标量。此外,仅绘制标记,就将size*5
用作圆圈。我使用进一步扩大了圈子。
for i in range(0,len(final)):
fig, ax = plt.subplots()
for x, y, size in zip(final[i]['x'],final[i]['y'], final[i]['value']):
plt.plot(x, y, 'o', markersize=size*5)
如果您想将它们绘制为子图
fig, axes = plt.subplots(1,3, figsize=(9, 2))
for i in range(0,len(final)):
for x, y, size in zip(final[i]['x'],final[i]['y'], final[i]['value']):
axes[i].plot(x, y, 'o', markersize=size*5)
plt.tight_layout()
关于python - 图:用其值改变点的尺寸,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56701664/