仅更改散点图中标记的宽度而不更改高度的方法?
Way to change only the width of marker in scatterplot but not height?
我想制作一个标记类型为矩形(不是正方形)的散点图,这样宽度大于高度。使用 "s" 我可以控制标记的整体大小,但它在两个维度上都会增加。
我不能直接传递高度和宽度,因为它们是散点图的未知属性。
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.scatter(np.arange(1,6), np.random.normal(size=5), marker='s', s=16)
试试下面的代码片段。
import numpy as np
import matplotlib.pyplot as plt
width = 60
height = 30
verts = list(zip([-width,width,width,-width],[-height,-height,height,height]))
fig, ax = plt.subplots()
ax.scatter(np.arange(1,6), np.random.normal(size=5), marker=(verts,0),s=40)
这里,参数 s
改变了散点的大小。绘制的矩形保持比例 width/height
.
输出:
更新
自 matplotlib 3.2x 起,(verts, 0)
的使用已弃用。工作代码应更改为
fig, ax = plt.subplots()
ax.scatter(np.arange(1,6), np.random.normal(size=5), marker=verts, s=40)
我想制作一个标记类型为矩形(不是正方形)的散点图,这样宽度大于高度。使用 "s" 我可以控制标记的整体大小,但它在两个维度上都会增加。
我不能直接传递高度和宽度,因为它们是散点图的未知属性。
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.scatter(np.arange(1,6), np.random.normal(size=5), marker='s', s=16)
试试下面的代码片段。
import numpy as np
import matplotlib.pyplot as plt
width = 60
height = 30
verts = list(zip([-width,width,width,-width],[-height,-height,height,height]))
fig, ax = plt.subplots()
ax.scatter(np.arange(1,6), np.random.normal(size=5), marker=(verts,0),s=40)
这里,参数 s
改变了散点的大小。绘制的矩形保持比例 width/height
.
输出:
更新
自 matplotlib 3.2x 起,(verts, 0)
的使用已弃用。工作代码应更改为
fig, ax = plt.subplots()
ax.scatter(np.arange(1,6), np.random.normal(size=5), marker=verts, s=40)