为函数绘制简单曲线有哪些替代方法
eq = function(x){x*x}
Run Code Online (Sandbox Code Playgroud)
在R?
这听起来是一个显而易见的问题,但我只能在stackoverflow上找到这些相关的问题,但它们都更具体
我希望我没有写一个重复的问题.
考虑这个简单的例子:
labNames <- c('xLab','yLabl')
plot(c(1:10),xlab=expression(paste(labName[1], x^2)),ylab=expression(paste(labName[2], y^2)))
Run Code Online (Sandbox Code Playgroud)
我想要的是由变量'labName,'xLab'或'yLab'定义的字符条目出现在由表达式()定义的X ^ 2或y ^ 2旁边.实际上,带有下标的实际文本"labName"将连接到上标表达式.
有什么想法吗?
我是R的新手,我有以下疑问:
我试图在R中生成一个有多行(数据系列)的图.这些行中的每一行都是一个类别,我希望它具有独特的颜色.
目前我的代码是以这种方式设置的:
首先,我正在创建一个空图:
plot(1,type='n',xlim=c(1,10),ylim=c(0,max_y),xlab='ID', ylab='Frequency')
Run Code Online (Sandbox Code Playgroud)
然后对于我的每个类别,我使用"for"循环在这个空图中绘制线条,如下所示:
for (category in categories){
lines(data.frame.for.this.category, type='o', col=sample(rainbow(10)), lwd=2)
}
Run Code Online (Sandbox Code Playgroud)
这里有8个类别,因此该图中有8个线.正如您所看到的,我尝试从rainbows()函数中采样颜色以生成每行的颜色.
但是,当生成绘图时,我发现有多条线具有相同的颜色.例如,这8行中的3行具有绿色.
如何使这8条线中的每一条都具有独特的颜色?
另外,我如何在情节的传说中反映这种独特性?我试图查找legend()函数,但不清楚我应该使用哪个参数来反映每个类别的这种独特颜色?
任何帮助或建议将不胜感激.
如何在matplotlib中为图表的标签添加换行符(例如xlabel或ylabel)?例如,
plt.bar([1, 2], [4, 5])
plt.xlabel("My x label")
plt.ylabel(r"My long label with $\Sigma_{C}$ math \n continues here")
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望y-labeled也能居中.有没有办法做到这一点?标签同时包含TeX(包含在'$'中)和换行符非常重要.
我有一个3元组数据集(X,Y,Z点),我想用R绘图.
我想从数据中创建一个曲面图,并在曲面图上叠加一个等高线图,以便创建轮廓图的印象,即从表面图中"阴影"或投影.等高线图将显示在曲面图下方.
我的数据集看起来有点像这样:
Axis | Data Type
-------------------
X | Date value
Y | Float value
Z | Float value
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我试图在网格图中绘制计数,但我无法弄清楚我是如何去做的.我想要:
以5为间隔有网格
每20个主要的刻度标签
我希望刻度线在情节之外.
在这些网格中"有计数"
这是我的代码.
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
for key, value in sorted(data.items()):
x = value[0][2]
y = value[0][3]
count = value[0][4]
fig = plt.figure()
ax = fig.add_subplot(111)
ax.annotate(count, xy = (x, y), size = 5)
# Overwrites and I only get the last data point
plt.close()
# Without this, I get "fail to allocate bitmap" error
plt.suptitle('Number of counts', fontsize = 12)
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.axes().set_aspect('equal')
plt.axis([0, 1000, …Run Code Online (Sandbox Code Playgroud) 我试图绘制一条ROC曲线来评估我使用逻辑回归包在Python中开发的预测模型的准确性.我计算了真阳性率和假阳性率; 但是,我无法弄清楚如何正确地使用这些matplotlib并计算AUC值.我怎么能这样做?
我正在寻找一种方法来使用我的DataFrame中的舍入数值来在Pandas条形图中注释我的条形图.
>>> df=pd.DataFrame({'A':np.random.rand(2),'B':np.random.rand(2)},index=['value1','value2'] )
>>> df
A B
value1 0.440922 0.911800
value2 0.588242 0.797366
Run Code Online (Sandbox Code Playgroud)
我想得到这样的东西:

我尝试使用此代码示例,但注释都集中在x刻度上:
>>> ax = df.plot(kind='bar')
>>> for idx, label in enumerate(list(df.index)):
for acc in df.columns:
value = np.round(df.ix[idx][acc],decimals=2)
ax.annotate(value,
(idx, value),
xytext=(0, 15),
textcoords='offset points')
Run Code Online (Sandbox Code Playgroud) matplotlib在绘制默认值方面,有没有办法使R的行为与R相同,或者几乎与R相同?例如,R对待它的轴与它完全不同matplotlib.以下直方图

具有向外刻度的"浮动轴",使得没有内部刻度(不同matplotlib)并且轴不会"接近"原点.此外,直方图可以"溢出"到未通过刻度标记的值 - 例如,x轴以3结束,但直方图略微超出它.如何在所有直方图中自动实现matplotlib?
相关问题:散点图和线图在R中具有不同的默认轴设置,例如:

再没有内部蜱,蜱面朝外.此外,在原点(y轴和x轴在轴的左下方交叉)之后,刻度开始略微,并且在轴结束之前刻度稍微结束.这样,最低x轴刻度和最低y轴刻度的标签不能真正交叉,因为它们之间有一个空间,这使得绘图非常优雅干净.请注意,轴刻度标签和刻度本身之间的空间也相当大.
此外,默认情况下,未标记的x或y轴上没有刻度,这意味着左侧的y轴与右侧标记的y轴平行,没有刻度,x轴相同,再次消除阴谋的混乱.
有没有办法让matplotlib看起来像这样?一般来说,默认情况下看默认R图是多少?我喜欢matplotlib很多,但我认为R默认/开箱即用的绘图行为确实让事情变得正确,其默认设置很少会导致重叠的刻度标签,杂乱或压扁的数据,所以我希望默认设置为尽可能地这样.
我已经设法在网上找到如何将正常曲线叠加到R中的直方图,但我想保留直方图的正常"频率"y轴.请参阅下面的两个代码段,并注意在第二个代码段中,y轴被替换为"density".如何将y轴保持为"频率",就像在第一个图中一样.
作为奖励:我想在密度曲线上标记SD区域(最多3 SD).我怎样才能做到这一点?我试过了abline,但是这条线延伸到了图形的顶部,看起来很丑陋.
g = d$mydata
hist(g)
Run Code Online (Sandbox Code Playgroud)

g = d$mydata
m<-mean(g)
std<-sqrt(var(g))
hist(g, density=20, breaks=20, prob=TRUE,
xlab="x-variable", ylim=c(0, 2),
main="normal curve over histogram")
curve(dnorm(x, mean=m, sd=std),
col="darkblue", lwd=2, add=TRUE, yaxt="n")
Run Code Online (Sandbox Code Playgroud)

看看上面的图像中,y轴是"密度".我想把它变成"频率".