我有以下数据:
import pandas as pd
import numpy as np
# Generate dummy data.
a = np.random.random(75)
b = np.random.random(75) - 0.6
c = np.random.random(75) + 0.75
# Collate into a DataFrame
df = pd.DataFrame({'a': a, 'b': b, 'c': c})
df.columns = [list(['WT', 'MUT', 'WTxMUT']), list(['Parent', 'Parent', 'Offspring'])]
df.columns.names = ['Genotype', 'Status']
df_melt = pd.melt(df)
我使用以下代码将其绘制在seaborn中:
import seaborn as sb
sb.swarmplot(data = df_melt, x = "Status", y = "value", hue = "Genotype")
如何获得每个组的X跨度?例如,父组的swarmplot的水平跨度的范围是多少?
您可以从中collections
创建的信息swarmplot
。
swarmplot
实际返回matplotlibAxes
实例,然后从那里可以找到PathCollections
它创建的实例。要获取职位,我们可以使用.get_offsets()
。
这是您的示例,进行了修改以查找并打印群限制,然后使用它们在群周围绘制方框。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sb
from matplotlib.patches import Rectangle
# Generate dummy data.
a = np.random.random(75)
b = np.random.random(75) - 0.6
c = np.random.random(75) + 0.75
# Collate into a DataFrame
df = pd.DataFrame({'a': a, 'b': b, 'c': c})
df.columns = [list(['WT', 'MUT', 'WTxMUT']), list(['Parent', 'Parent', 'Offspring'])]
df.columns.names = ['Genotype', 'Status']
df_melt = pd.melt(df)
ax = sb.swarmplot(data = df_melt, x = "Status", y = "value", hue = "Genotype")
def getdatalim(coll):
x,y = np.array(coll.get_offsets()).T
try:
print 'xmin={}, xmax={}, ymin={}, ymax={}'.format(
x.min(), x.max(), y.min(), y.max())
rect = Rectangle((x.min(),y.min()),x.ptp(),y.ptp(),edgecolor='k',facecolor='None',lw=3)
ax.add_patch(rect)
except ValueError:
pass
getdatalim(ax.collections[0]) # "Parent"
getdatalim(ax.collections[1]) # "Offspring"
plt.show()
打印:
xmin=-0.107313729132, xmax=0.10661092707, ymin=-0.598534246847, ymax=0.980441247759
xmin=0.942829146473, xmax=1.06105941656, ymin=0.761277608688, ymax=1.74729717464
这是图:
在我的应用程序中,我必须为通知设置一个大图标。LargeIcon必须是位图,我的可绘制内容是矢量图像(Android中的新功能,请参见此链接)。问题是,当我尝试解码矢量图像资源时,返回空值。 以下是代码示例: 在本示例中,当我替换R.drawable时。vector_menu_objectifs带有“普通”图像,例如png,结果不为空(我得到了正确的位图)是否缺少什么?
我有一个包含坐标的.csv文件,我需要在我做过的地图上使用python绘制它们。有人能帮我吗?
这是正确的工作,但它绘制了许多标记的坐标小于600米的用户的位置。我想要的是只在折线的最近点画一个标记。某种程度上评估来自用户的<600的所有coord,然后选择最接近的。感谢任何帮助。
一个星期以来,我一直在解决这个问题;我连接到我的服务器API并检索cookie。 然后我做了一个GET来检索JSON Cookie会话,但是我在跨源代码方面遇到了一个问题。 在API的一侧是可以的,因为我得到了一个良好的状态200。 答复如下: ============================================================= 响应:访问控制允许信任。。。真
基本上,我的代码是这样的: 我有一个名为cam的正交相机和一个名为batch的sprite批处理。 我想要的是要在 InputProcessor 类中创建一个矩形,该矩形与使用子画面批处理绘制的纹理区域具有相同的 x、y、宽度和高度,以便我可以触摸检测该纹理。 但是当我用“Rock.getTextureRegion.y”或“x”作为我的Bounds矩形的参数时,边界就大不相同了。 是因为那个输入类
我正在尝试使用GeoJSON在地图上绘制点。我阅读了文件,其中说明: 可以通过调用数据对象的loadGeoJSON()方法来加载和显示GeoJSON文件 (https://developers.google.com/maps/documentation/javascript/datalayer) 但是,同一页上的示例代码显示: map.data.loadGeoJson(…) 因此,我使用代码示例,