我正在尝试使用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."))
(mtcars2是mtcars的标准化形式)
我正在尝试使用geom_smooth(method ='lm')为这两个变量绘制两条趋势线。有什么想法吗?
(额外奖励:如果可能,我还想实施'shape = 1'参数来区分变量。以下方法不起作用)
geom_point(aes(x=mpg, y = hp, col = "Power", shape=2))
更新 我设法做到了。
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 = mpg, col = "MPG"))
看起来像这样。
但这是一段丑陋的代码。如果有人能让这段代码看起来更漂亮,那就太棒了。此外,我还没有能够实现'shape = 2'参数。
答案 0 :(得分:5)
看起来你的生活比你需要的更难......你可以将其他参数传递到#define MAXLIST 100
template <typename T>
class List {
private:
int maxList;
int last = 0;
T* List;
public:
List();
explicit List(int tam);
bool listIsFull();
void destroyList();
};
template<typename T>
List<T>::List<T>() {
last = -1;
maxList = MAXLIST;
list = new T[maxList];
}
template<typename T>
List<T>::List<T>(int tam) {
last = -1;
maxList = tam;
list = new T[maxList];
}
template<typename T>
void List<T>::destroyList() {
last = -1;
}
template<typename T>
bool List<T>::listIsFull() {
if (last == MAXLIST - 1)
return true;
else
return false;
}
,例如aes()
和group
。
我不知道我的标准化是否正确,但这应该足以让你朝着正确的方向前进:
shape
产量: