我有一个散点图:
x=[0.1,0.2,0.3,0.4]
y=[0.1,0.3,0.4,0.6]
Run Code Online (Sandbox Code Playgroud)
我想绘制它,在每个点上添加透明度,所以我使用
plt.scatter(x,y,alpha =0.5, marker='o',color='g', markersize=12)
Run Code Online (Sandbox Code Playgroud)
然而,发生的情况是,我得到了充满绿色且通体透明的圆圈。我想要得到的是仅在内部区域的透明度,并且边缘真正可见,这样如果我有可能彼此靠近的点,我总是可以看到边界。有办法吗?
我正在用 python 制作 matplotlib 绘图。我有一个标记,我正在使用以下方法将其放在绘图上:
plt.scatter(x_position,y_position,c=z_position,cmap=cm.bwr,marker='x',s=500,linewidth=4)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,标记的颜色反映了 z 位置。
我唯一的问题是,有时“X”与背景并不完全不同(当然取决于颜色),所以我想在“X”标记周围放置一个黑色轮廓。
我尝试更改边缘颜色,但这似乎没有效果。我认为这是因为我将标记设置为“X”,因此没有边缘,就像常规圆形散点图有边缘一样?
我正在尝试为簇制作背景颜色,但不知道如何使喷射颜色图更亮或更暗。有人可以帮助我吗?
我试图PairGrid在对角线上绘制使用密度估计,在上三角部分绘制散点图,在下三角部分绘制成对线性回归模型。这是我的数据文件:
df.head()
Run Code Online (Sandbox Code Playgroud)
g = sns.PairGrid(df, hue="quality bin")
g = g.map_upper(sns.scatterplot)
g = g.map_lower(sns.lmplot)
g = g.map_diag(sns.kdeplot)
g = g.add_legend()
Run Code Online (Sandbox Code Playgroud)
但是我收到这个错误:TypeError: lmplot() got an unexpected keyword argument 'label'
我有一个生成这样的密度散点图的代码(可以在此处找到How to add an ellipse to a scatterplot colored by Density in R?):
## Data in a data.frame
x1 <- rnorm(n=1000, sd=2)
x2 <- x1*1.2 + rnorm(n=1000, sd=2)
df <- data.frame(x1,x2)
## Use densCols() output to get density at each point
x <- densCols(x1,x2, colramp=colorRampPalette(c("black", "white")))
df$dens <- col2rgb(x)[1,] + 1L
## Map densities to colors
cols <- colorRampPalette(c("#FF3100", "#FF9400", "#FCFF00",
"#45FE4F", "#00FEFF", "#000099"))(6)
df$col <- ifelse(df$dens >= 250, cols[1], ifelse(df$dens >= 200, cols[2], ifelse(df$dens >= 150, cols[3], …Run Code Online (Sandbox Code Playgroud) 我想为包含正值和负值的数据集创建一个散点图.我对plot()非常熟悉,但我找不到将轴移动到绘图中心的任何选项,即零.我希望情节看起来像"十字准线".
我知道如何在plot()中关闭轴,即xaxt ="N",我理解如何使用轴().没有选项或示例我可以找到在绘图中间将轴置于零的中心.使用abline()创建线条和刻度标记似乎是不必要的.
你能指点一下我可以用plot()实现这个目标的命令,技巧或包吗?
我想通过scatterplot3d绘制响应曲面,但是下面的代码通过错误.
library(rsm)
swiss2.lm <- lm(Fertility ~ poly(Agriculture, Education, degree = 2), data = swiss)
persp(swiss2.lm, Education ~ Agriculture, zlab = "Fertility")
library(scatterplot3d)
s3d <-
scatterplot3d(
swiss
# , type = "h"
, highlight.3d = TRUE
, angle = 55
, scale.y = 0.7
, pch = 16
)
s3d$plane3d(swiss2.lm, lty.box = "solid")
Run Code Online (Sandbox Code Playgroud)
如果您能帮助解决问题,我将非常感谢.谢谢
Eidt
Error in segments(x, z1, x + y.max * yx.f, z2 + yz.f * y.max, lty = ltya, :
cannot mix zero-length and non-zero-length coordinates
Run Code Online (Sandbox Code Playgroud)
我正在使用库中的swiss …
我想根据一列中的值使我的散点图圆圈着色.
"value"; "avg.sal"; "avg.temp"
2,5698; 34,27254; 4,44
5,4361; 34,30686; 4,64
2,27; 34,3538; 8,05
5,6015; 34,50136; 5,01
2,27; 34,37596; 7,4
Run Code Online (Sandbox Code Playgroud)
我的情节准备好了y轴上的盐度和x轴上的温度.
plot(df$avg.sal, df$avg.temp)
Run Code Online (Sandbox Code Playgroud)
如何根据列"值"对圆圈进行着色(例如从浅蓝色到深蓝色)?值的范围较大,但较小的值(例如2)应为浅蓝色,较大的值(例如10)应为深蓝色.我宁愿不使用GGplot.
我想要合并一个contourf()绘图和一个scatter()绘图matplotlib.pyplot,但是,添加散点图会改变绘图的轴.这是一个小例子:
from matplotlib import pyplot as plt
import numpy as np
data = np.random.rand(10,10)
plt.contourf(data)
# plt.scatter(3, 7, s=200, color='k')
plt.show()
Run Code Online (Sandbox Code Playgroud)
这个脚本创建了一些像这样的情节:

取消注释plt.scatter(3, 7, s=200, color='k')轴限制时,会在轮廓图周围产生白框.可能是使用plt.xlim和手动设置轴限制plt.ylim,但这似乎是一个不必要的麻烦.我怎样才能优雅地完成这项工作?

我试图使用R中的geom_smooth()覆盖多个趋势线.我目前有这个代码.
ggplot(mtcars2, aes(x=Displacement, y = Variable, color = Variable))
+ geom_point(aes(x=mpg, y = hp, col = "Power"))
+ geom_point(aes(x=mpg, y = drat, col = "Drag Coef."))
Run Code Online (Sandbox Code Playgroud)
(mtcars2是mtcars的标准化形式)
我试图使用geom_smooth(method ='lm')为这两个变量绘制两条趋势线.有任何想法吗?
(额外奖励:如果可能,我还想实现'shape = 1'参数来区分变量.以下方法不起作用)
geom_point(aes(x=mpg, y = hp, col = "Power", shape=2))
Run Code Online (Sandbox Code Playgroud)
更新 我设法做到了这一点.
ggplot(mtcars2, aes(x=Displacement, y = Variable, color = Variable))
+ geom_point(aes(x=disp, y = hp, col = "Power"))
+ geom_point(aes(x=disp, y = mpg, col = "MPG"))
+ geom_smooth(method= 'lm',aes(x=disp, y = hp, col = "Power"))
+ geom_smooth(method= 'lm',aes(x=disp, y …Run Code Online (Sandbox Code Playgroud)