Синтаксис в Xcode 8 GM был еще более упрощен, код был изменен из ответа rob-mayoff выше. Используя это и помощник для addLine(to point: CGPoint)
, я использую кросс-платформу для рисования кода.
extension NSBezierPath {
public var cgPath: CGPath {
let path = CGMutablePath()
var points = [CGPoint](repeating: .zero, count: 3)
for i in 0 ..< self.elementCount {
let type = self.element(at: i, associatedPoints: &points)
switch type {
case .moveToBezierPathElement:
path.move(to: points[0])
case .lineToBezierPathElement:
path.addLine(to: points[0])
case .curveToBezierPathElement:
path.addCurve(to: points[2], control1: points[0], control2: points[1])
case .closePathBezierPathElement:
path.closeSubpath()
}
}
return path
}
}
Когда указано внутри aes
, эстетика отображается на значение переменной в данных. Поскольку существует отображение между данными и видимой эстетикой, есть легенда, которая показывает, что отображение. За пределами вызова aes
эстетика просто устанавливает на определенное значение. В примерах, которые вы показываете, размер (и цвет) устанавливаются одинаковыми для всех точек. В этом случае нет необходимости в легенде, потому что размер (или цвет) не передает никакого значения (относительно базовых данных).
Проблема, которую вы видите с легендой, связана с размер которого отображается на непрерывную переменную. Бывает, что в ваших данных есть только два значения, но в принципе непрерывная переменная может принимать любое значение. Если это действительно просто переменная выбора из двух, сделайте ее фактором (либо в исходных данных, либо в эстетическом вызове aes(size=factor(qsec))
.
geom_point()
для двух разных наборов данных с одинаковыми полными уровнями факторов. Я хочу один набор с размером = n, а другой - размером = m. Возможно, поскольку каждый вызовgeom_point()
видит только один статический размер, если я вызываю внеaes()
, он не добавляет легенды? (Я упоминаю об этом, поскольку я вызываю внеaes()
с определенным значением ... но так как два таких вызова выполняются с разными опциями размера, там is i> означает размеры. – Hendy 16 July 2012 в 22:42scale_size_manual
можно использовать для установки размеров по желанию. Кроме того, вы можете назначить размер строковой константе (aes(size="set1")
для одного,aes(size="set2")
для другого), а затем использоватьscale_size_manual
для сопоставления этих разрывов с определенными метками и размерами (values
). См. Например, stackoverflow.com/q/11159072/892313 – Brian Diggs 17 July 2012 в 05:14