Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выбор цветов для графика / 8 сообщений из 8, страница 1 из 1
20.12.2018, 09:58
    #39750616
__Avenger__
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор цветов для графика
Добрый день!

Помогите придумать функцию выбора цветов для графика. Входной параметр @RowId. Т.е. функция для одного и того же RowId, должна возвращать всегда один цвет.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
	DECLARE @A TABLE (A VARCHAR(2))
	INSERT INTO @A(A) VALUES('00'),('33'),('66'),('99'),('CC'),('FF')

	SELECT t.*
	FROM (
		SELECT t.Color, RowId = ROW_NUMBER() OVER(ORDER BY t.GroupId, t.Color)
		FROM (
			SELECT t.Color, GroupId = ROW_NUMBER() OVER(PARTITION BY t.GroupId ORDER BY t.Color)
			FROM (
				SELECT Color = a.A + b.A + c.A, GroupId = NTILE(36) OVER (ORDER BY 1/0)
				FROM @A a
				CROSS JOIN @A b 
				CROSS JOIN @A c 
			) t
		)t
	) t
	--WHERE t.RowId = @RowId
...
Рейтинг: 0 / 0
20.12.2018, 12:49
    #39750737
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор цветов для графика
__Avenger__,

в реляционных базах нет понятия "Номер строки", но есть понятие "значение ключа".
...
Рейтинг: 0 / 0
20.12.2018, 12:51
    #39750738
__Avenger__
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор цветов для графика
Владислав Колосов__Avenger__,

в реляционных базах нет понятия "Номер строки", но есть понятие "значение ключа".

RowId - суррогатный ключ. У меня при выборе 10 первых цветов всегда градиент получается, а хочется разброса цветов
...
Рейтинг: 0 / 0
20.12.2018, 13:14
    #39750773
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор цветов для графика
__Avenger__,

сортируйте по newid(), получите разный порядок при новом запросе.
...
Рейтинг: 0 / 0
20.12.2018, 13:39
    #39750792
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор цветов для графика
__Avenger__,

Чего-то я не вкурю, чем вам не устраивает прямолинейное решение?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
	DECLARE @A TABLE (A VARCHAR(2))
	INSERT INTO @A(A) VALUES('00'),('33'),('66'),('99'),('CC'),('FF')

	SELECT Color = a.A + b.A + c.A, RowId = ROW_NUMBER() OVER(ORDER BY a.A + b.A + c.A)
	FROM @A a
	CROSS JOIN @A b 
	CROSS JOIN @A c 


	SELECT Color = a.A + b.A + c.A, RowId = ROW_NUMBER() OVER(ORDER BY a.A, b.A, c.A)
	FROM @A a
	CROSS JOIN @A b 
	CROSS JOIN @A c 

 
...
Рейтинг: 0 / 0
20.12.2018, 13:59
    #39750818
архивариус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор цветов для графика
__Avenger__,


для графика попробуйте эти 12 цветов (не будут сливаться друг с другом на экране)

DECLARE @rgb table (rgb varchar(6))
INSERT INTO @rgb(rgb) VALUES('A6CEE3'),('1F78B4'),('B2DF8A'),('33A02C'),('FB9A99'),('E31A1C'),('FDBF6F'),('FF7F00'),('CAB2D6'),('6A3D9A'),('FFFF99'),('B15928')
SELECT * FROM @rgb
...
Рейтинг: 0 / 0
20.12.2018, 14:08
    #39750829
архивариус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор цветов для графика
архивариус,

https://beta.observablehq.com/@mbostock/d3-color-schemes
схема paired
...
Рейтинг: 0 / 0
20.12.2018, 23:07
    #39751079
__Avenger__
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор цветов для графика
архивариус,


Спасибо. Интересная ссылка...

Я не знаю сколько цветов мне понадобится для графика. Пока ограничился 30-ю. Надеюсь, что хватит.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выбор цветов для графика / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]