Plot 在x轴上使用名称而不是数字在球拍中绘图
我可以使用上显示的以下代码绘制点: 但是,如何绘制x轴点具有名称而不是数字的位置:Plot 在x轴上使用名称而不是数字在球拍中绘图,plot,scheme,racket,Plot,Scheme,Racket,我可以使用上显示的以下代码绘制点: 但是,如何绘制x轴点具有名称而不是数字的位置: (define xs '(AA BB CC DD AA CC)) 使用上述代码进行尝试会显示一条很长的错误消息: points: contract violation expected: Real given: 'AA in: an element of an element of the 1st argument of (->* ((sequ
(define xs '(AA BB CC DD AA CC))
使用上述代码进行尝试会显示一条很长的错误消息:
points: contract violation
expected: Real
given: 'AA
in: an element of
an element of
the 1st argument of
(->*
((sequence/c (sequence/c Real)))
(#:alpha
Nonnegative-Real
#:color
(or/c
Integer
Symbol
String
(recursive-contract g2149 #:impersonator)
(cons/c
Real
(cons/c Real (cons/c Real ()))))
#:fill-color
(or/c
Integer
Symbol
String
(recursive-contract g2149 #:impersonator)
(cons/c
Real
(cons/c Real (cons/c Real ()))))
#:label
(or/c #f String)
#:line-width
Nonnegative-Real
#:size
Nonnegative-Real
#:sym
(or/c
Integer
Char
String
dot
point
pixel
plus
times
asterisk
5asterisk
odot
oplus
otimes
oasterisk
o5asterisk
circle
square
diamond
triangle
fullcircle
fullsquare
fulldiamond
fulltriangle
triangleup
triangledown
triangleleft
triangleright
fulltriangleup
fulltriangledown
fulltriangleleft
fulltriangleright
rightarrow
leftarrow
uparrow
downarrow
4star
5star
6star
7star
8star
full4star
full5star
full6star
full7star
full8star
circle1
circle2
circle3
circle4
circle5
circle6
circle7
circle8
bullet
fullcircle1
fullcircle2
fullcircle3
fullcircle4
fullcircle5
fullcircle6
fullcircle7
fullcircle8)
#:x-max
(or/c Real #f)
#:x-min
(or/c Real #f)
#:y-max
(or/c Real #f)
#:y-min
(or/c Real #f))
any)
contract from:
<pkgs>/plot-lib/plot/private/plot2d/point.rkt
blaming: anonymous-module
(assuming the contract is correct)
at: <pkgs>/plot-lib/plot/private/plot2d/point.rkt:47.9
积分:违反合同
预期:真实
给出:“AA
在:元素
元素
第一个论点
(->*
((sequence/c(sequence/c Real)))
(#:α)
非负实
#:颜色
(或)
整数
象征
一串
(递归合约g2149#:模拟者)
(续)
真实的
(cons/c Real(cons/c Real((())))
#:填充颜色
(或)
整数
象征
一串
(递归合约g2149#:模拟者)
(续)
真实的
(cons/c Real(cons/c Real((())))
#:标签
(或/c#f字符串)
#:线宽
非负实
#:尺寸
非负实
#:sym
(或)
整数
烧焦
一串
点
指向
像素
加
时代
星号
5星号
奥多
奥普拉斯
有时
绿洲
O5星号
圆圈
广场
钻石
三角形
整圈
全场
全钻石
全三角
三角
三角城
三角形左
三角光
全三角
全速前进
全三角形左
全三角光
向右箭头
左箭头
向上箭头
向下箭头
4星
五星
6星
七星
8星
全4星
五星级
全6星
全七星
满8星
圆圈1
圆圈2
圆圈3
圆圈4
圆圈5
圆圈6
圆圈7
圆圈8
子弹
完整圆圈1
完整圆圈2
完整圆圈3
完整圆圈4
完整圆圈5
完整圆圈6
完整圆圈7
完整圆圈8)
#:x-max
(或c/Real#f)
#:x-min
(或c/Real#f)
#:y-max
(或c/Real#f)
#:y-min
(或c/Real#f))
(任何)
合同来自:
/绘图库/plot/private/plot2d/point.rkt
责备:匿名模块
(假设合同是正确的)
at:/plot lib/plot/private/plot2d/point.rkt:47.9
如何绘制x轴具有组名而不是数字的绘图?您可能正在执行以下两种操作之一。我的第一个猜测是,你正在绘制某种柱状图;也就是说,您的X代表不同的类别。在这种情况下,您可能希望使用,例如,
离散直方图
。在这种情况下,你会写
#lang racket
(require plot)
(define xs '(AA BB CC DD AA CC))
(define ys '(0 1 4 9 16 25))
(plot (discrete-histogram (map vector xs ys) #:color 'red))
如果这不是你想要的,请告诉我们
编辑:根据下面的讨论,以下是如何为某些值更新勾号标签
#lang racket
(require plot)
(define current-layout
(ticks-layout (plot-x-ticks)))
(define current-formatter
(ticks-format (plot-x-ticks)))
(define my-label-hash
(hash 1 "AA"
2 "BB"))
(parameterize
([plot-x-ticks
(ticks (ticks-layout (plot-x-ticks))
(λ (min max pre-ticks)
(define default-layed-out
(current-formatter min max pre-ticks))
(for/list ([pt (in-list pre-ticks)]
[default (in-list default-layed-out)])
(or (hash-ref my-label-hash (pre-tick-value pt) #f)
default))))])
(plot (function (λ (x) x))
#:x-min 0
#:x-max 4))
是的,我只是想画一个直方图。谢谢。但是2个AA点和2个CC点在这里被绘制为单独的条形图。如何将这些点仅绘制为点而不是直方图,以及对应的单个x轴标记上的2个AA和CC点。另外,如果你能提到你对这种情况的第二个想法,那将是很有趣的。嗯。。。我看到您希望加入AA结果和CC结果,但我不确定您希望结果图是什么样子。可能你只想看到X轴上的AA、BB和CC,以及每个标签上方的一个或多个点。在本例中,您应该了解使用“plot-x-ticks”指定自定义刻度的功能,以及这里给出的示例。在这种情况下,您可能会将每个标签与特定的x值相关联,然后按x值收集点,然后根据需要对它们进行标记。我希望看到x轴上的AA、BB和CC,以及每个标签上方的一个或多个点。此页()有数字、日期、时间和货币的方法,但没有名称或类别。它有这些方法,但它似乎还提供了一组更通用的函数,允许您指定自己的。。。好的,为你写了一些代码。请参见上面的“编辑以回答”。
#lang racket
(require plot)
(define current-layout
(ticks-layout (plot-x-ticks)))
(define current-formatter
(ticks-format (plot-x-ticks)))
(define my-label-hash
(hash 1 "AA"
2 "BB"))
(parameterize
([plot-x-ticks
(ticks (ticks-layout (plot-x-ticks))
(λ (min max pre-ticks)
(define default-layed-out
(current-formatter min max pre-ticks))
(for/list ([pt (in-list pre-ticks)]
[default (in-list default-layed-out)])
(or (hash-ref my-label-hash (pre-tick-value pt) #f)
default))))])
(plot (function (λ (x) x))
#:x-min 0
#:x-max 4))