Git Product home page Git Product logo

clusterfun's Issues

Local development results in white screen or "WebGL is not supported"

When cloning the repository and running one of the example scripts, the resulting visualisation will be a white screen.
(Reported by @MSchnei).

import pandas as pd
import clusterfun as clt

df = pd.read_csv("https://raw.githubusercontent.com/gietema/clusterfun-data/main/cifar10.csv")
clt.confusion_matrix(df, y_true="label", y_pred="pred", media="img_path")

When quickly debugging this issue, I could get this to resolve, but I got a "WebGL is not supported" message instead of the plot (while the search bar and side bar were displayed now).

Needs to be fixed to make it easier for users to contribute.

Feature suggestion: Color gradient

I'm currently making scatter plots and I would like my data to be colored accordingly to the probability scores (0.0-1.0). Clusterfun is interpreting my "probability" column as many distinct classes producing a very colorful but not awfully helpful graph.

The desired behavior would be for clusterfun to realise it's not dealing with distinct classes passed in the "color" column but instead a range of values and color them accordingly (e.g. cmap = plt.get_cmap(colormap, num_bins) from matplotlib).

Here's a function that can help figure out if we're dealing with distinct categories or a range of values:

`

def categorical_or_distribution(arr, threshold_ratio=0.2):

"""
Determine whether the given array represents distinct categories or a distribution.

Parameters:
- arr (list or numpy array): Array to classify.
- threshold_ratio (float): Threshold ratio to distinguish between categorical and distribution.

Returns:
- str: "categories" if the data represents distinct categories, "distribution" otherwise.
"""
# Convert input to a numpy array if not already
arr = np.array(arr)

# Get the number of unique values and the total count
unique_values, counts = np.unique(arr, return_counts=True)
num_unique = len(unique_values)
total_values = len(arr)

# Calculate the ratio of unique values to total values
unique_ratio = num_unique / total_values

# Determine if the data is categorical or a distribution
if unique_ratio <= threshold_ratio:
    return "categorical"
else:
    return "distribution"
# Further analysis using entropy (optional) 
# I don't really want to add scipy as a dependency tho
#value_entropy = entropy(counts)

# Check if the entropy suggests a distribution (high entropy)
#if value_entropy > np.log2(num_unique):
#    return "distribution"
#else:
#    return "categories" 

`

And here's a simple function that can map binned values to the "coolwarm" color scheme:
`

def data_to_color_mapping(data, colormap='coolwarm', num_bins=256):
"""
Assigns colors to data points based on a gradient colormap.

Parameters:
- data (list or numpy array): Array of data points to color.
- colormap (str): Name of the colormap to use.
- num_bins (int): Number of bins (shades) to use in the colormap.

Returns:
- dict: Mapping of data point to its corresponding color.
"""
# Convert data to a numpy array
data = np.array(data)

# Normalize data to the range [0, 1]
data_min, data_max = np.min(data), np.max(data)
normalized_data = (data - data_min) / (data_max - data_min)

# Create a colormap object
cmap = plt.get_cmap(colormap, num_bins)

# Apply colormap to the normalized data
colors = [rgba_to_hex(cmap(value)) for value in normalized_data]

# Create a mapping of data point to color
data_color_map = {data_point: color for data_point, color in zip(data, colors)}

return data_color_map


def rgba_to_hex(rgba):
"""
Converts RGBA color to HEX.

Parameters:
- rgba (tuple): RGBA color as a tuple.

Returns:
- str: Color as a HEX string.
"""
return '#{:02x}{:02x}{:02x}'.format(int(rgba[0] * 255), int(rgba[1] * 255), int(rgba[2] * 255))

`

Currently clusterfun expects to work with classes - the function clusterfun.storage.local.data.get_data_per_color() was built around that assumption, so it's not obvious how to integrate a color range without changing this function.

Do you see an easy way to add this functionality?

Issue when selecting in filtered data

Hello and thanks for the library it's very cool :)

I noticed an issue when I select some datapoints which have already been filtered. In some occasion I get the following error:

clusterfun/storage/local/helpers.py .... in run_query result = con.execute(query)
sqlite3.OperationalError: near "LIMIT": syntax error

When I print the query I can see AND LIMIT which I think is creating the bug. If I modify the code to replace occurence of AND LIMIT with LIMIT it works :)

Here is the query that results in the error in case:

SELECT * FROM database WHERE id IN (188, 593, 1670, 1694, 1695, 1696, 1949, 1951, 1952, 1954, 1955, 1959, 1960, 1961, 1962, 1964, 1965, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2010, 2012, 2013, 2014, 2015, 2016, 2017, 2020, 2021, 2022, 2023, 2024, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2086, 2087, 2088, 2089, 2097, 2098, 2099, 2122, 2123, 2124, 2125, 2126, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2140, 2141, 2142, 2143, 2145, 2146, 2153, 2155, 2156, 2157, 2158, 2159, 2161, 2162, 2163, 2164, 2165, 2170, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2181, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2264, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2786, 2787, 2789, 2790, 2791, 2792, 2793, 2795, 2796, 2797, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2852, 2853, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2867, 2868, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2887, 2888, 2889, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2969, 2977, 2978, 2979, 2980, 2982, 2983, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2996, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3010, 3014, 3015, 3019, 3021, 3022, 3025, 3044, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3054, 3060, 3061, 3062, 3063, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3081, 3088, 3094, 3099, 3102, 3114, 3117, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139, 3156, 3157, 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3212, 3213, 3214, 3215, 3216, 3217, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3241, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3252, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3275, 3276, 3306, 3307, 3309, 3310, 3313, 3326, 3328, 3332, 3333, 3334, 3362, 3363, 3364, 3365, 3373, 3374, 3375, 3377, 3378, 3379, 3380, 3381, 3382, 3500, 5113, 5178, 5207, 5215, 5216, 5221, 5222, 5223, 5251, 5286, 5289, 5290, 5291, 5292, 5293, 5294, 5316, 5317, 5323, 5343, 5344, 5367, 5368, 5369, 5375, 5406, 5408, 5435, 5436, 5439, 5454, 5455, 5456, 5457, 5471, 5472, 5554, 5561, 5568, 5569, 5571, 5597, 5609, 5615, 5626, 5627, 5628, 5630, 5632, 5633, 5645, 5647, 5648, 5669, 5672, 5675, 5676, 5677, 5678, 5688, 5716, 5717, 5728, 5731, 5732, 5740, 5772, 5790, 5798, 5806, 5816, 5826, 5838, 5839, 5841, 5842, 5854, 5855, 5856, 5857, 5858, 5859, 5861, 5863, 5864, 5866, 5867, 5869, 5870, 5875, 5883, 5902, 5904, 5905, 5909, 5914, 5932, 5933, 5965, 5974, 5975, 5981, 5987, 6006, 6009, 6010, 6012, 6013, 6015, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6028, 6029, 6030, 6031, 6032, 6038, 6039, 6040, 6041, 6043, 6044, 6045, 6046, 6048, 6049, 6050, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059, 6061, 6067, 6068, 6069, 6071, 6072, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6089, 6091, 6092, 6093, 6095, 6096, 6097, 6098, 6099, 6100, 6101, 6102, 6103, 6105, 6106, 6107, 6108, 6109, 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6119, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 6127, 6129, 6130, 6132, 6133, 6134, 6135, 6136, 6137, 6138, 6140, 6141, 6142, 6145, 6146, 6148, 6149, 6150, 6151, 6152, 6153, 6154, 6155, 6156, 6157, 6158, 6159, 6160, 6163, 6166, 6167, 6168, 6169, 6171, 6174, 6175, 6176, 6177, 6178, 6179, 6180, 6181, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6195, 6196, 6197, 6198, 6201, 6203, 6204, 6206, 6207, 6208, 6209, 6210, 6211, 6212, 6214, 6215, 6216, 6217, 6218, 6219, 6221, 6224, 6228, 6232, 6234, 6235, 6236, 6237, 6238, 6240, 6241, 6242, 6244, 6245, 6246, 6247, 6248, 6249, 6251, 6252, 6253, 6255, 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6264, 6265, 6266, 6267, 6268, 6269, 6270, 6271, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6328, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6362, 6364, 6365, 6372, 6373, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6387, 6388, 6389, 6390, 6391, 6392, 6393, 6395, 6396, 6397, 6398, 6399, 6400, 6401, 6402, 6403, 6404, 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6418, 6419, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6428, 6429, 6430, 6431, 6432, 6433, 6434, 6435, 6436, 6437, 6439, 6441, 6442, 6443, 6444, 6445, 6446, 6447, 6448, 6450, 6452, 6461, 6467, 6468, 6469, 6470, 6471, 6473, 6474, 6478, 6481, 6482, 6483, 6485, 6491, 6494, 6496, 6497, 6499, 6501, 6508, 6509, 6510, 6511, 6521, 6522, 6539, 6540, 6541, 6542, 6548, 6555, 6557, 6558, 6559, 6562, 6563, 6564, 6567, 6574, 6575, 6576, 6588, 6589, 6592, 6594, 6598, 6600, 6601, 6602, 6605, 6620, 6621, 6629, 6630, 6635, 6636, 6641, 6642, 6649, 6650, 6651, 6655, 6657, 6658, 6659, 6660, 6664, 6672, 6675, 6676, 6677, 6681, 6683, 6687, 6690, 6691, 6692, 6698, 6699, 6700, 6701, 6705, 6708, 6709, 6710, 6711, 6712, 6713, 6718, 6720, 6721, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6734, 6735, 6736, 6737, 6738, 6740, 6741, 6742, 6743, 6747, 6748, 6750, 6751, 6754, 6756, 6758, 6761, 6762, 6763, 6764, 6765, 6766, 6771, 6797, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6811, 6812, 6813, 6814, 6815, 6817, 6818, 6819, 6820, 6821, 6823, 6824, 6825, 6829, 6830, 6831, 6832, 6833, 6834, 6835, 6839, 6841, 6843, 6848, 6849, 6854, 6855, 6860, 6882, 6894, 6905, 6916, 6923, 6925, 6926, 6929, 6930, 6934, 6938, 6949, 6959, 6960, 6971, 6974, 6975, 6980, 6981, 6983, 6984, 6985, 6986, 6987, 6988, 7013, 7015, 7018, 7039, 7040, 7041, 7049, 7050, 7051, 7054, 7056, 7057, 7058, 7059, 7062, 7063, 7064, 7070, 7075, 7076, 7077, 7078, 7079, 7081, 7090, 7092, 7093, 7094, 7098, 7106, 7113, 7116, 7122, 7212, 7253, 7278, 7292, 7303, 7314, 7325, 7381, 7392, 7413, 7425, 7448, 7454, 7455, 7462, 7470, 7475, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7488, 7491, 7494, 7503, 7552, 7581, 7592, 7603, 7666, 7674, 7675, 7676, 7677, 7680, 7682, 7688, 7689, 7692, 7693, 7703, 7707, 7714, 7725, 7736, 7747, 7758, 7792, 7801, 7836, 7847, 7858, 7885, 7890, 7891, 8924, 9209, 9804, 9805, 9806, 9855, 9856, 9857, 9858, 9861, 9862, 9863, 9868, 9947, 9987, 10023, 10301, 10425, 11199, 11215, 11216, 11217, 11218, 11222, 11233, 11234, 11235, 11240, 11242, 11243, 11245, 11246, 11248, 11249, 11255, 11275, 11277, 11281, 11282, 11283, 11303, 11309, 11312, 11675, 11677, 11763, 11818, 11819, 11820, 11824, 11825, 11826, 11829, 11830, 11832, 11834, 11836, 11845, 11846, 11848, 11849, 11851, 11852, 11853, 11854, 11855, 11856, 11857, 11858, 11859, 11860, 11862, 11863, 11864, 11865, 11866, 11867, 11868, 11869, 11870, 11871, 11874, 11875, 11876, 11877, 11878, 11885, 11886, 11891, 11892, 11893, 11894, 11896, 11897, 11898, 11899, 11901, 11902, 11903, 11904, 11905, 11907, 11908, 11909, 11910, 11911, 11912, 11915, 11986, 12004, 12008, 12317, 12328, 12400, 12444, 12453, 12457, 12483, 12492, 12539, 12616, 12627, 12638, 12650, 12661, 12694, 12705, 12738, 12942, 12943, 12955, 12956, 12957, 12968, 13078, 13080, 13090, 13293, 13294, 13296, 13297, 13443, 13535, 13539, 13540, 13541, 13672, 13675, 13677, 13678, 13679, 13697, 13701, 14195, 14492, 14500, 14502, 14503, 14504, 14505, 14507, 14516, 14517, 14518, 14519, 14520, 14521, 14522, 14524, 14525, 14527, 14528, 14529, 14530, 14531, 14532, 15016, 15263, 15353, 15357, 15358, 15375, 15378, 15382, 15383, 17704, 18035, 18073, 18086, 18094, 18540, 19380, 19391, 19413, 19424, 19718, 19799, 23076, 24261, 24262, 24263, 24274, 24276, 24277, 24278, 24399, 24400, 24401, 24402, 24403, 24404, 24405, 24407, 24408, 24411, 24413, 24414, 24415, 24416, 24418, 24517, 24528, 24638, 24641, 24642, 24728, 25050, 25264, 25265, 25373, 25486, 25500, 25501, 25550, 25555, 25556, 25568, 25580, 25622, 25636, 25697, 25781, 25801, 25870, 25871, 25873, 25943, 26045, 26046, 26047, 26326, 26327, 26337, 26772, 27108, 27114, 27115, 27116, 27119, 27122, 27123, 27124, 27125, 27126, 27127, 27129, 27130, 27131, 27133, 27134, 27135, 27136, 27137, 27138, 27139, 27140, 27141, 27142, 27143, 27144, 27145, 27146, 27147, 27148, 27150, 27154, 27155, 27156, 27163, 27174, 27444, 27781, 28116, 28452, 28458, 28468, 28474, 28496, 28507, 28787, 28788, 28789, 29125, 29460, 29796, 29807, 29814, 29815, 29817, 29828, 29829, 29830, 29838, 29840, 29851, 29854, 29856, 29862, 30132, 30469, 30804, 31140, 31189, 31200, 31204, 31205, 31206, 31307, 31475, 31476, 31895, 31979, 32148, 32231, 32487, 32517, 32539, 32550, 33157, 33492, 34913, 35172, 35202, 35227, 35508, 35845, 36516, 36527, 36538, 36549, 36560, 36571, 37188, 37735, 37848, 38276, 38379, 38600, 38632, 38651, 38664, 38757, 39015, 39023, 39236, 39241, 39242, 39243, 39252, 39253, 39346, 39347, 39364, 39518, 39519, 39521, 39632, 39730, 39731, 39739, 39745, 39749, 39754, 39756, 39758, 39764, 39766, 39767, 39768, 39773, 39775, 40136, 40144, 40145, 40146, 40147, 40148, 40149, 40150, 40151, 40152, 40154, 40155, 40157, 40162, 40163, 40167, 40283, 40284, 40285, 40287, 40288, 40289, 40290, 40291, 40292, 40293, 40294, 40317, 40378, 40914, 40916, 40917, 40918, 40919, 40920, 40921, 40923, 40924, 41683, 41707, 41718, 41770, 41777, 41947, 41992, 42012, 42014, 42015, 42029, 42064, 42065, 42066, 42067, 42068, 42072, 42073, 42077, 42085, 42086, 42090, 42099, 42100, 42104, 42105, 42112, 42115, 42116, 42127, 42128, 42133, 42138, 42139, 42197, 42198, 42204, 42211, 42225, 42234, 42266, 42270, 42289, 42294, 42303, 42305, 42356, 42358, 42370, 42372, 42377, 42422, 42423, 42454, 46446, 46634, 48195, 48233, 48357, 48358, 58036, 58037, 58278, 58282, 58352, 58657, 58658, 58659, 58681, 58683, 58684, 58685, 58686, 58691, 58695, 58696, 58707, 58708, 58710, 58713, 58714, 58715, 58716, 58717, 58718, 58719, 58721, 58722, 58723, 58724, 58725, 58726, 58727, 58728, 58729, 58730, 58732, 58734, 58735, 58736, 58753, 58756, 58763, 58764, 58767, 58770, 58777, 58778, 58779, 58786, 58788, 58789, 58790, 58791, 58792, 58793, 58794, 58795, 58796, 58797, 58799, 58800, 58801, 58802, 58803, 58804, 58805, 58807, 58810, 58988, 58990, 58991, 58992, 59003, 59004, 59372, 59376, 59645, 59676, 59731, 59756, 59757, 59770, 59775, 59891, 59894, 59897, 59900, 68034, 68035, 68150, 68849, 68850, 70524, 70532, 70550, 70551, 70590, 70591, 70949, 73962, 74483, 74860, 74861, 74862, 74864, 74865, 74866, 74867, 76107, 76126, 76153, 76154, 76156, 76163, 76164, 76165, 76167, 76168, 76169, 76175, 76176, 76179, 76180, 76181, 76182, 76183, 76184, 76185, 76186, 76187, 76188, 76190, 76191, 76192, 76193, 76194, 76195, 76196, 76197, 76198, 76309, 76310, 76312, 76313, 76314, 76315, 76316, 76320, 76325, 79430, 79432, 97541, 97554, 97768, 97861, 97865, 97881, 98416, 99740, 99743, 99744, 99745, 99746, 99747, 99752, 99756, 99759, 99760, 99771, 99772, 99773, 99776, 99777, 100706, 102537, 102693, 102695, 103638, 103640, 103642, 103649, 103652, 104116, 105253, 105566, 106280, 106727) AND  LIMIT 50 OFFSET 50

Page resets when enlarging image

In the grid view, when clicking on a single image for inspection, the grid resets to the first page when resetting.
This should obviously not be the case.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.