BarChart - PlotRange'i değiştirirken ChartElementFunction'ı koru
Nov 21 2020
İşte BarChartbazı veriler
data = {90, 91, 95, 103, 107, 102, 107, 105, 98, 96}
{90, 91, 95, 103, 107, 102, 107, 105, 98, 96}
BarChart[data, ChartElementFunction -> "GradientScaleRectangle"]
Eklediğimde PlotRangerenk kayboluyor.
BarChart[data, ChartElementFunction -> "GradientScaleRectangle",
PlotRange -> {80, 120}]
Bu konuda çalışmak mümkün mü?
Yanıtlar
6 kglr Nov 21 2020 at 08:04
ChartElementFunctionDikdörtgenleri kırpmak için bir özel kullanabiliriz :
ClearAll[cEF]
cEF[cedf_: "GradientScaleRectangle", o: OptionsPattern[]][d_, pr_] :=
Block[{Charting`ChartStyleInformation},
Charting`ChartStyleInformation["BoundingBox"] =
{{.5, Length @ d + .5}, {pr[[1]], Max @ d}};
ChartElementDataFunction[cedf, o][{#[[1]], Clip[#[[2]], pr]}, ##2]] &;
Örnekler:
data = {90, 91, 95, 103, 107, 102, 107, 105, 98, 96};
plotrange = {80, 120};
BarChart[data,
ChartElementFunction -> cEF[][data, plotrange],
ChartLabels -> CharacterRange["A", "J"],
PlotRange -> plotrange,
ImagePadding -> 20]
Şunları elde cEF["GradientScaleRectangle", "ColorScheme" -> "Rainbow"][data, plotrange]etmek için kullanın :
BarChart[data, ColorFunction -> "Rainbow",
ChartElementFunction ->
cEF["GlassRectangle", "GradientOrigin" -> Top][data, {75, 110}],
ChartLabels -> CharacterRange["A", "J"],
PlotRange -> {75, 110},
ImagePadding -> 20]
BarChart[data,
ChartStyle -> (Texture[ExampleData[{"TestImage", #}]] & /@ {"Lena", "Mandrill"}),
ChartElementFunction -> cEF["TextureRectangle"][data, {70, 110}],
ChartLabels -> CharacterRange["A", "J"],
PlotRange -> {70, 110},
ImagePadding -> 20, ImageSize -> Large]
Güncelleme: Değiştirilmiş giriş verileri ve özel işaretler ve çizim aralığı dolgusu kullanan alternatif bir yaklaşım:
plotrange = {80, 120};
data2 = data - plotrange[[1]];
plotrange2 = {0, - Subtract @@ plotrange};
padding = plotrange2[[2]] - Max @ data2;
BarChart[Thread[Tooltip[data2, data]],
ChartElementFunction -> "GradientScaleRectangle",
ChartLabels -> CharacterRange["A", "J"],
PlotRangePadding -> {{Automatic, Automatic}, {Automatic, padding}},
Ticks -> {Automatic, Charting`FindTicks[plotrange2, plotrange]}]
4 ChrisDegnen Nov 21 2020 at 07:21
data = {90, 91, 95, 103, 107, 102, 107, 105, 98, 96};
Show[BarChart[data,
ChartElementFunction -> "GradientScaleRectangle"],
PlotRange -> {80, 120}]
Verileri ve işaret etiketlerini ayarlayarak maviden turuncuya renkleri çizme.
data = {90, 91, 95, 103, 107, 102, 107, 105, 98, 96} - 80;
Show[BarChart[data,
ChartElementFunction -> "GradientScaleRectangle",
Ticks -> {Automatic,
{{0, 80}, {10, 90}, {20, 100}, {30, 110}, {40, 120}}}],
PlotRange -> {0, 40}]
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı