下面,我创建了一个简单的数据集示例。我有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'])
正如我之前所说,我想要的结果是抽搐中的情节不同,只有点的维数取决于它们的值
答案 0 :(得分:0)
由于不能使用散点,因此您需要循环使用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()
答案 1 :(得分:0)
在plt.plot图形中有一个关于线宽的参数。请设置为零。
plt.plot(final[i]["x"], final[i]["y"], marker="o", markersize=22, linewidth=0)